usr/src/tools/scripts/nightly.sh
author rie
Tue, 13 Sep 2005 10:26:14 -0700
changeset 524 259d2acc2f55
parent 458 92c1210ccd92
child 851 bbbf4a61e3b8
permissions -rw-r--r--
5072038 binaries shouldn't be stripped
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     1
#!/bin/ksh -p
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     2
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     3
# CDDL HEADER START
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     4
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     6
# Common Development and Distribution License, Version 1.0 only
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     7
# (the "License").  You may not use this file except in compliance
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     8
# with the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     9
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    10
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    11
# or http://www.opensolaris.org/os/licensing.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    12
# See the License for the specific language governing permissions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    13
# and limitations under the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    14
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    15
# When distributing Covered Code, include this CDDL HEADER in each
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    16
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    17
# If applicable, add the following below this CDDL HEADER, with the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    18
# fields enclosed by brackets "[]" replaced with your own identifying
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    19
# information: Portions Copyright [yyyy] [name of copyright owner]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    20
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    21
# CDDL HEADER END
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    22
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    23
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    24
# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    25
# Use is subject to license terms.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    26
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    27
# ident	"%Z%%M%	%I%	%E% SMI"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    28
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    29
# Based on the nightly script from the integration folks,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    30
# Mostly modified and owned by mike_s.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    31
# Changes also by kjc, dmk.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    32
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    33
# BRINGOVER_WS may be specified in the env file.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    34
# The default is the old behavior of CLONE_WS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    35
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    36
# -i on the command line, means fast options, so when it's on the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    37
# command line (only), lint, check, GPROF and TRACE builds are skipped
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    38
# no matter what the setting of their individual flags are in NIGHTLY_OPTIONS.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    39
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    40
# LINTDIRS can be set in the env file, format is a list of:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    41
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    42
#	/dirname-to-run-lint-on flag
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    43
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    44
#	Where flag is:	y - enable lint noise diff output
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    45
#			n - disable lint noise diff output
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    46
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    47
#	For example: LINTDIRS="$SRC/uts n $SRC/stand y $SRC/psm y"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    48
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    49
# -A flag in NIGHTLY_OPTIONS checks ABI diffs in .so files
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    50
# This option requires a couple of scripts.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    51
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    52
# OPTHOME and TEAMWARE may be set in the environment to override /opt
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    53
# and /opt/teamware defaults.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    54
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    55
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    56
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    57
# The CDPATH variable causes ksh's `cd' builtin to emit messages to stdout
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    58
# under certain circumstances, which can really screw things up; unset it.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    59
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    60
unset CDPATH
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    61
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    62
# function to do a DEBUG and non-DEBUG build. Needed because we might
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    63
# need to do another for the source build, and since we only deliver DEBUG or
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    64
# non-DEBUG packages.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    65
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    66
normal_build() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    67
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    68
	# timestamp the start of a nightly build; the findunref tool uses it.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    69
	touch $SRC/.build.tstamp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    70
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    71
	# non-DEBUG build begins
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    72
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    73
	if [ "$F_FLAG" = "n" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    74
		export INTERNAL_RELEASE_BUILD ; INTERNAL_RELEASE_BUILD=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    75
		export RELEASE_BUILD ; RELEASE_BUILD=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    76
		unset EXTRA_OPTIONS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    77
		unset EXTRA_CFLAGS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    78
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    79
		build non-DEBUG -nd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    80
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    81
		if [ "$build_ok" = "y" -a "$X_FLAG" = "y" -a "$p_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    82
			copy_ihv_pkgs non-DEBUG -nd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    83
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    84
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    85
		echo "\n==== No non-DEBUG build ====\n" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    86
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    87
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    88
	# non-DEBUG build ends
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    89
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    90
	# DEBUG build begins
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    91
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    92
	if [ "$D_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    93
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    94
		export INTERNAL_RELEASE_BUILD ; INTERNAL_RELEASE_BUILD=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    95
		unset RELEASE_BUILD
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    96
		unset EXTRA_OPTIONS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    97
		unset EXTRA_CFLAGS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    98
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    99
		build DEBUG ""
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   100
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   101
		if [ "$build_ok" = "y" -a "$X_FLAG" = "y" -a "$p_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   102
			copy_ihv_pkgs DEBUG ""
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   103
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   104
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   105
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   106
		echo "\n==== No DEBUG build ====\n" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   107
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   108
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   109
	# DEBUG build ends
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   110
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   111
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   112
filelist() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   113
	if  [ $# -ne 2 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   114
		echo "usage: filelist DESTDIR PATTERN"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   115
		exit 1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   116
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   117
	DEST=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   118
	PATTERN=$2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   119
	cd ${DEST}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   120
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   121
	OBJFILES=${ORIG_SRC}/xmod/obj_files
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   122
	if [ ! -f ${OBJFILES} ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   123
		return;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   124
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   125
	for i in `grep -v '^#' ${ORIG_SRC}/xmod/obj_files | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   126
	    grep ${PATTERN} | cut -d: -f2 | tr -d ' \t'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   127
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   128
		# wildcard expansion
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   129
		for j in $i
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   130
		do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   131
			if [ -f "$j" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   132
				echo $j
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   133
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   134
			if [ -d "$j" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   135
				echo $j
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   136
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   137
		done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   138
	done | sort | uniq
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   139
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   140
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   141
# function to save off binaries after a full build for later
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   142
# restoration
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   143
save_binaries() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   144
	# save off list of binaries
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   145
	echo "\n==== Saving binaries from build at `date` ====\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   146
	    tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   147
	rm -f ${BINARCHIVE}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   148
	cd ${CODEMGR_WS}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   149
	filelist ${CODEMGR_WS} '^preserve:' >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   150
	filelist ${CODEMGR_WS} '^preserve:' | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   151
	    cpio -ocB 2>/dev/null | compress \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   152
	    > ${BINARCHIVE}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   153
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   154
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   155
# delete files
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   156
hybridize_files() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   157
	if  [ $# -ne 2 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   158
		echo "usage: hybridize_files DESTDIR MAKE_TARGET"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   159
		exit 1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   160
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   161
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   162
	DEST=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   163
	MAKETARG=$2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   164
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   165
	echo "\n==== Hybridizing files at `date` ====\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   166
	    tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   167
	for i in `filelist ${DEST} '^delete:'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   168
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   169
		echo "removing ${i}." | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   170
		rm -rf "${i}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   171
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   172
	for i in `filelist ${DEST} '^hybridize:' `
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   173
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   174
		echo "hybridizing ${i}." | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   175
		rm -f ${i}+
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   176
		sed -e "/^# HYBRID DELETE START/,/^# HYBRID DELETE END/d" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   177
		    < ${i} > ${i}+
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   178
		mv ${i}+ ${i}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   179
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   180
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   181
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   182
# restore binaries into the proper source tree.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   183
restore_binaries() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   184
	if  [ $# -ne 2 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   185
		echo "usage: restore_binaries DESTDIR MAKE_TARGET"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   186
		exit 1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   187
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   188
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   189
	DEST=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   190
	MAKETARG=$2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   191
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   192
	echo "\n==== Restoring binaries to ${MAKETARG} at `date` ====\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   193
	    tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   194
	cd ${DEST}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   195
	zcat ${BINARCHIVE} | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   196
	    cpio -idmucvB 2>/dev/null | tee -a $mail_msg_file >> ${LOGFILE}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   197
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   198
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   199
# rename files we save binaries of
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   200
rename_files() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   201
	if  [ $# -ne 2 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   202
		echo "usage: rename_files DESTDIR MAKE_TARGET"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   203
		exit 1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   204
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   205
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   206
	DEST=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   207
	MAKETARG=$2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   208
	echo "\n==== Renaming source files in ${MAKETARG} at `date` ====\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   209
	    tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   210
	for i in `filelist ${DEST} '^rename:'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   211
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   212
		echo ${i} | tee -a $mail_msg_file >> ${LOGFILE}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   213
		rm -f ${i}.export
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   214
		mv ${i} ${i}.export
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   215
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   216
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   217
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   218
# function to create the export/crypt source tree
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   219
# usage: clone_source CODEMGR_WS DESTDIR MAKE_TARGET
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   220
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   221
clone_source() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   222
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   223
	if  [ $# -ne 3 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   224
		echo "usage: clone_source CODEMGR_WS DESTDIR MAKE_TARGET"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   225
		exit 1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   226
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   227
	WS=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   228
	DEST=$2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   229
	MAKETARG=$3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   230
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   231
	echo "\n==== Creating ${DEST} source from ${WS} (${MAKETARG}) ====\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   232
	    tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   233
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   234
	echo "cleaning out ${DEST}." >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   235
	rm -rf "${DEST}" >> $LOGFILE 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   236
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   237
	mkdir -p ${DEST}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   238
	cd ${WS}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   239
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   240
	echo "creating ${DEST}." >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   241
	find usr/src -name 's\.*' -a -type f -print | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   242
	    sed -e 's,SCCS\/s.,,' | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   243
	    grep -v '/\.del-*' | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   244
	    cpio -pd ${DEST} >>$LOGFILE 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   245
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   246
	SRC=${DEST}/usr/src
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   247
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   248
	cd $SRC
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   249
	rm -f ${MAKETARG}.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   250
	echo "making ${MAKETARG} in ${SRC}." >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   251
	/bin/time $MAKE -e ${MAKETARG} 2>&1 | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   252
	    tee -a $SRC/${MAKETARG}.out >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   253
	echo "\n==== ${MAKETARG} build errors ====\n" >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   254
	egrep ":" $SRC/${MAKETARG}.out | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   255
		egrep -e "(^${MAKE}:|[ 	]error[: 	\n])" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   256
		egrep -v "Ignoring unknown host" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   257
		egrep -v "warning" >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   258
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   259
	echo "clearing state files." >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   260
	find . -name '.make*' -exec rm -f {} \;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   261
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   262
	cd ${DEST}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   263
	if [ "${MAKETARG}" = "CRYPT_SRC" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   264
		rm -f ${CODEMGR_WS}/crypt_files.cpio.Z
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   265
		echo "\n==== xmod/cry_files that don't exist ====\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   266
		    tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   267
		CRYPT_FILES=${WS}/usr/src/xmod/cry_files
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   268
		for i in `cat ${CRYPT_FILES}`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   269
		do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   270
			# make sure the files exist
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   271
			if [ -f "$i" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   272
				continue
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   273
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   274
			if [ -d "$i" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   275
				continue
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   276
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   277
			echo "$i" | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   278
		done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   279
		find `cat ${CRYPT_FILES}` -print 2>/dev/null | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   280
		    cpio -ocB 2>/dev/null | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   281
		    compress > ${CODEMGR_WS}/crypt_files.cpio.Z
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   282
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   283
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   284
	if [ "${MAKETARG}" = "EXPORT_SRC" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   285
		# rename first, since we might restore a file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   286
		# of the same name (mapfiles)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   287
		rename_files ${EXPORT_SRC} EXPORT_SRC
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   288
		if [ "$SH_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   289
			hybridize_files ${EXPORT_SRC} EXPORT_SRC
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   290
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   291
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   292
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   293
	# save the cleartext
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   294
	echo "\n==== Creating ${MAKETARG}.cpio.Z ====\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   295
	    tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   296
	cd ${DEST}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   297
	rm -f ${MAKETARG}.cpio.Z
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   298
	find usr/src -depth -print | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   299
	    grep -v usr/src/${MAKETARG}.out | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   300
	    cpio -ocB 2>/dev/null | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   301
	    compress > ${CODEMGR_WS}/${MAKETARG}.cpio.Z
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   302
	if [ "${MAKETARG}" = "EXPORT_SRC" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   303
		restore_binaries ${EXPORT_SRC} EXPORT_SRC
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   304
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   305
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   306
	if [ "${MAKETARG}" = "CRYPT_SRC" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   307
		restore_binaries ${CRYPT_SRC} CRYPT_SRC
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   308
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   309
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   310
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   311
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   312
# function to do the build.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   313
# usage: build LABEL SUFFIX
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   314
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   315
build() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   316
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   317
	if  [ $# -ne 2 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   318
		echo "usage: build LABEL SUFFIX"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   319
		exit 1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   320
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   321
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   322
	LABEL=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   323
	SUFFIX=$2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   324
	INSTALLOG=install${SUFFIX}-${MACH}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   325
	NOISE=noise${SUFFIX}-${MACH}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   326
	CPIODIR=${CPIODIR_ORIG}${SUFFIX}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   327
	PKGARCHIVE=${PKGARCHIVE_ORIG}${SUFFIX}
338
05079e64a96e 6308636 need method of rebuilding sparc SUNWrmodu
jg
parents: 0
diff changeset
   328
	if [ "$SPARC_RM_PKGARCHIVE_ORIG" ]; then
05079e64a96e 6308636 need method of rebuilding sparc SUNWrmodu
jg
parents: 0
diff changeset
   329
		SPARC_RM_PKGARCHIVE=${SPARC_RM_PKGARCHIVE_ORIG}${SUFFIX}
05079e64a96e 6308636 need method of rebuilding sparc SUNWrmodu
jg
parents: 0
diff changeset
   330
	fi
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   331
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   332
	#remove old logs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   333
	OLDINSTALLOG=install${SUFFIX}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   334
	OLDNOISE=noise${SUFFIX}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   335
	rm -f $SRC/${OLDINSTALLOG}.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   336
	rm -f $SRC/${OLDNOISE}.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   337
	if [ -f $SRC/${OLDNOISE}.out ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   338
		mv $SRC/${OLDNOISE}.out $SRC/${NOISE}.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   339
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   340
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   341
	this_build_ok=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   342
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   343
	#	Build OS-Networking source
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   344
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   345
	echo "\n==== Building OS-Net source at `date` ($LABEL) ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   346
		>> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   347
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   348
	rm -f $SRC/${INSTALLOG}.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   349
	cd $SRC
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   350
	/bin/time $MAKE -e install 2>&1 | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   351
	    tee -a $SRC/${INSTALLOG}.out >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   352
	echo "\n==== Build errors ($LABEL) ====\n" >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   353
	egrep ":" $SRC/${INSTALLOG}.out |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   354
		egrep -e "(^${MAKE}:|[ 	]error[: 	\n])" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   355
		egrep -v "Ignoring unknown host" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   356
		egrep -v "cc .* -o error " | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   357
		egrep -v "warning" >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   358
	if [ "$?" = "0" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   359
		build_ok=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   360
		this_build_ok=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   361
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   362
	grep "bootblock image is .* bytes too big" $SRC/${INSTALLOG}.out \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   363
		>> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   364
	if [ "$?" = "0" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   365
		build_ok=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   366
		this_build_ok=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   367
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   368
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   369
	if [ "$W_FLAG" = "n" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   370
		echo "\n==== Build warnings ($LABEL) ====\n" >>$mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   371
		# should be none, but there are a few that are pmake
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   372
		# related, and a couple of silly ones.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   373
		egrep -i warning: $SRC/${INSTALLOG}.out \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   374
			| egrep -v '^tic:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   375
			| egrep -v '^mcs:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   376
			| egrep -v '^LD_LIBRARY_PATH=' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   377
			| egrep -v 'multiple use of -K option' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   378
			| egrep -v 'option -I appears more than once' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   379
			| egrep -v 'ar: creating' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   380
			| egrep -v 'ar: writing' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   381
			| egrep -v 'conflicts:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   382
			| egrep -v ':saved created' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   383
			| egrep -v '^stty.*c:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   384
			| egrep -v '^mfgname.c:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   385
			| egrep -v '^uname-i.c:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   386
			| egrep -v '^volumes.c:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   387
			| egrep -v '^lint library construction:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   388
			| egrep -v 'tsort: INFORM:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   389
			| egrep -v 'stripalign:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   390
			| egrep -v 'chars, width' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   391
			| egrep -v 'option -zdefs/nodefs appears more than' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   392
			| egrep -v "symbol \`timezone' has differing types:" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   393
			| egrep -v "parameter <PSTAMP> set to" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   394
			| egrep -v "^Manifying" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   395
			| egrep -v "Ignoring unknown host" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   396
			| egrep -v "redefining segment flags attribute for" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   397
			>> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   398
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   399
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   400
	echo "\n==== Ended OS-Net source build at `date` ($LABEL) ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   401
		>> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   402
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   403
	echo "\n==== Elapsed build time ($LABEL) ====\n" >>$mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   404
	tail -3  $SRC/${INSTALLOG}.out >>$mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   405
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   406
	if [ "$i_FLAG" = "n" -a "$W_FLAG" = "n" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   407
		rm -f $SRC/${NOISE}.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   408
		if [ -f $SRC/${NOISE}.out ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   409
			mv $SRC/${NOISE}.out $SRC/${NOISE}.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   410
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   411
		grep : $SRC/${INSTALLOG}.out \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   412
			| egrep -v '^/' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   413
			| egrep -v '^(Start|Finish|real|user|sys|./bld_awk)' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   414
			| egrep -v '^tic:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   415
			| egrep -v '^mcs' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   416
			| egrep -v '^LD_LIBRARY_PATH=' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   417
			| egrep -v 'multiple use of -K option' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   418
			| egrep -v 'option -I appears more than once' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   419
			| egrep -v 'ar: creating' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   420
			| egrep -v 'ar: writing' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   421
			| egrep -v 'conflicts:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   422
			| egrep -v ':saved created' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   423
			| egrep -v '^stty.*c:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   424
			| egrep -v '^mfgname.c:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   425
			| egrep -v '^uname-i.c:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   426
			| egrep -v '^volumes.c:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   427
			| egrep -v '^lint library construction:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   428
			| egrep -v 'tsort: INFORM:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   429
			| egrep -v 'stripalign:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   430
			| egrep -v 'chars, width' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   431
			| egrep -v 'option -zdefs/nodefs appears more than' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   432
			| egrep -v "symbol \`timezone' has differing types:" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   433
			| egrep -v 'PSTAMP' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   434
			| egrep -v '|%WHOANDWHERE%|' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   435
			| egrep -v '^Manifying' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   436
			| egrep -v 'Ignoring unknown host' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   437
			| egrep -v 'Processing method:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   438
			| egrep -v '^Writing' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   439
			| egrep -v 'spellin1:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   440
			| egrep -v '^adding:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   441
			| egrep -v "^echo 'msgid" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   442
			| egrep -v '^echo ' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   443
			| egrep -v '\.c:$' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   444
			| egrep -v '^Adding file:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   445
			| egrep -v 'CLASSPATH=' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   446
			| egrep -v '\/var\/mail\/:saved' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   447
			| egrep -v -- '-DUTS_VERSION=' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   448
			| egrep -v '^Running Mkbootstrap' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   449
			| egrep -v '^Applet length read:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   450
			| egrep -v 'bytes written:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   451
			| egrep -v '^File:SolarisAuthApplet.bin' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   452
			| egrep -v -i 'jibversion' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   453
			| egrep -v '^Output size:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   454
			| egrep -v '^Solo size statistics:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   455
			| egrep -v '^Using ROM API Version' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   456
			| egrep -v '^Zero Signature length:' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   457
			| egrep -v '^Note \(probably harmless\):' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   458
			| egrep -v '::' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   459
			| egrep -v -- '-xcache' \
411
ae71859f7fc8 6302154 fix for 6297567 introduces some undesirable output changes
wesolows
parents: 338
diff changeset
   460
			| egrep -v '^\+' \
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   461
			| sort | uniq >$SRC/${NOISE}.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   462
		if [ ! -f $SRC/${NOISE}.ref ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   463
			cp $SRC/${NOISE}.out $SRC/${NOISE}.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   464
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   465
		echo "\n==== Build noise differences ($LABEL) ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   466
			>>$mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   467
		diff $SRC/${NOISE}.ref $SRC/${NOISE}.out >>$mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   468
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   469
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   470
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   471
	#	Create cpio archives for preintegration testing (PIT)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   472
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   473
	if [ "$a_FLAG" = "y" -a "$this_build_ok" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   474
		echo "\n==== Creating $LABEL cpio archives at `date` ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   475
			>> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   476
		makebfu_file="${TMPDIR}/makebfu"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   477
		rm -f ${makebfu_file}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   478
		makebfu 2>&1 | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   479
			tee -a ${makebfu_file} >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   480
		echo "\n==== cpio archives build errors ($LABEL) ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   481
			>> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   482
		grep -v "^Creating .* archive:" ${makebfu_file} | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   483
			grep -v "^Making" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   484
			grep -v "^$" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   485
			sort | uniq >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   486
		rm -f ${makebfu_file}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   487
		# hack for test folks
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   488
		if [ -z "`echo $PARENT_WS|egrep '^\/ws\/'`" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   489
			X=/net/`uname -n`${CPIODIR}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   490
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   491
			X=${CPIODIR}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   492
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   493
		echo "Archive_directory: ${X}" >${TMPDIR}/f
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   494
		cp ${TMPDIR}/f ${CPIODIR}/../../.${MACH}_wgtrun
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   495
		rm -f ${TMPDIR}/f
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   496
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   497
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   498
		echo "\n==== Not creating $LABEL cpio archives ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   499
			>> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   500
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   501
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   502
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   503
	#	Building Packages
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   504
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   505
	if [ "$p_FLAG" = "y" -a "$this_build_ok" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   506
		echo "\n==== Creating $LABEL packages at `date` ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   507
			>> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   508
		rm -f $SRC/pkgdefs/${INSTALLOG}.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   509
		echo "Clearing out $PKGARCHIVE ..." >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   510
		rm -rf $PKGARCHIVE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   511
		mkdir -p $PKGARCHIVE
338
05079e64a96e 6308636 need method of rebuilding sparc SUNWrmodu
jg
parents: 0
diff changeset
   512
05079e64a96e 6308636 need method of rebuilding sparc SUNWrmodu
jg
parents: 0
diff changeset
   513
		#
05079e64a96e 6308636 need method of rebuilding sparc SUNWrmodu
jg
parents: 0
diff changeset
   514
		# Optional build of sparc realmode on i386
05079e64a96e 6308636 need method of rebuilding sparc SUNWrmodu
jg
parents: 0
diff changeset
   515
		#
05079e64a96e 6308636 need method of rebuilding sparc SUNWrmodu
jg
parents: 0
diff changeset
   516
		if [ "$MACH" = "i386" ] && [ "${SPARC_RM_PKGARCHIVE}" ]; then
05079e64a96e 6308636 need method of rebuilding sparc SUNWrmodu
jg
parents: 0
diff changeset
   517
			echo "Clearing out ${SPARC_RM_PKGARCHIVE} ..." \
05079e64a96e 6308636 need method of rebuilding sparc SUNWrmodu
jg
parents: 0
diff changeset
   518
				>> $LOGFILE
05079e64a96e 6308636 need method of rebuilding sparc SUNWrmodu
jg
parents: 0
diff changeset
   519
			rm -rf ${SPARC_RM_PKGARCHIVE}
05079e64a96e 6308636 need method of rebuilding sparc SUNWrmodu
jg
parents: 0
diff changeset
   520
			mkdir -p ${SPARC_RM_PKGARCHIVE}
05079e64a96e 6308636 need method of rebuilding sparc SUNWrmodu
jg
parents: 0
diff changeset
   521
		fi
05079e64a96e 6308636 need method of rebuilding sparc SUNWrmodu
jg
parents: 0
diff changeset
   522
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   523
		cd $SRC/pkgdefs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   524
		$MAKE -e install 2>&1 | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   525
			tee -a $SRC/pkgdefs/${INSTALLOG}.out >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   526
		echo "\n==== Package build errors ($LABEL) ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   527
			>> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   528
		egrep "${MAKE}|ERROR|WARNING" $SRC/pkgdefs/${INSTALLOG}.out | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   529
			grep ':' | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   530
			grep -v PSTAMP | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   531
			egrep -v "Ignoring unknown host" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   532
			>> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   533
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   534
		echo "\n==== Not creating $LABEL packages ====\n" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   535
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   536
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   537
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   538
dolint() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   539
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   540
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   541
	# Arg. 2 is a flag to turn on/off the lint diff output
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   542
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   543
	dl_usage="Usage: dolint /dir y|n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   544
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   545
	if [ $# -ne 2 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   546
		echo $dl_usage
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   547
		exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   548
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   549
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   550
	if [ ! -d "$1" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   551
		echo $dl_usage
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   552
		exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   553
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   554
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   555
	if [ "$2" != "y" -a "$2" != "n" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   556
		echo $dl_usage
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   557
		exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   558
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   559
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   560
	lintdir=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   561
	dodiff=$2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   562
	base=`basename $lintdir`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   563
	LINTOUT=$lintdir/lint-${MACH}.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   564
	LINTNOISE=$lintdir/lint-noise-${MACH}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   565
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   566
	export INTERNAL_RELEASE_BUILD ; INTERNAL_RELEASE_BUILD=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   567
	unset RELEASE_BUILD
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   568
	unset EXTRA_OPTIONS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   569
	unset EXTRA_CFLAGS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   570
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   571
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   572
	#	'$MAKE lint' in $lintdir
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   573
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   574
	echo "\n==== Begin '$MAKE lint' of $base at `date` ====\n" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   575
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   576
	# remove old lint.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   577
	rm -f $lintdir/lint.out $lintdir/lint-noise.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   578
	if [ -f $lintdir/lint-noise.ref ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   579
		mv $lintdir/lint-noise.ref ${LINTNOISE}.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   580
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   581
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   582
	rm -f $LINTOUT
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   583
	cd $lintdir
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   584
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   585
	# Remove all .ln files to ensure a full reference file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   586
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   587
	rm -f Nothing_to_remove \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   588
	    `find . -name SCCS -prune -o -type f -name '*.ln' -print `
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   589
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   590
	/bin/time $MAKE -ek lint 2>&1 | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   591
	    tee -a $LINTOUT >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   592
	echo "\n==== '$MAKE lint' of $base ERRORS ====\n" >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   593
	grep "$MAKE:" $LINTOUT |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   594
		egrep -v "Ignoring unknown host" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   595
		>> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   596
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   597
	echo "\n==== Ended '$MAKE lint' of $base at `date` ====\n" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   598
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   599
	echo "\n==== Elapsed time of '$MAKE lint' of $base ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   600
		>>$mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   601
	tail -3  $LINTOUT >>$mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   602
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   603
	rm -f ${LINTNOISE}.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   604
	if [ -f ${LINTNOISE}.out ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   605
		mv ${LINTNOISE}.out ${LINTNOISE}.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   606
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   607
        #grep : $LINTOUT |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   608
		#egrep -v '^(name|function|value|argument|real|user|sys)' |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   609
		#egrep -v 'warning: (name|function|value|possibly)' |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   610
		#egrep -v 'warning: argument used' |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   611
        grep : $LINTOUT | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   612
		egrep -v '^(real|user|sys)' |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   613
		egrep -v '(library construction)' | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   614
		egrep -v ': global crosschecks' | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   615
		egrep -v 'Ignoring unknown host' | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   616
		egrep -v '\.c:$' | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   617
		sort | uniq > ${LINTNOISE}.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   618
	if [ ! -f ${LINTNOISE}.ref ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   619
		cp ${LINTNOISE}.out ${LINTNOISE}.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   620
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   621
	if [ "$dodiff" != "n" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   622
		echo "\n==== lint warnings $base ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   623
			>>$mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   624
		# should be none, though there are a few that were filtered out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   625
		# above
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   626
		egrep -i '(warning|lint):' ${LINTNOISE}.out \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   627
			| sort | uniq >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   628
		echo "\n==== lint noise differences $base ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   629
			>> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   630
		diff ${LINTNOISE}.ref ${LINTNOISE}.out \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   631
			>> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   632
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   633
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   634
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   635
# Install proto area from IHV build
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   636
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   637
copy_ihv_proto() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   638
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   639
	echo "\n==== Installing $IA32_IHV_ROOT  ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   640
		>> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   641
	if [ -d "$IA32_IHV_ROOT" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   642
		if [ ! -d "$ROOT" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   643
			echo "mkdir -p $ROOT" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   644
			mkdir -p $ROOT
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   645
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   646
		echo "cd $IA32_IHV_ROOT\n" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   647
		cd $IA32_IHV_ROOT
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   648
		tar -cf - . | (cd $ROOT; umask 0; tar xpf - ) 2>&1 >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   649
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   650
		echo "$IA32_IHV_ROOT: not found" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   651
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   652
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   653
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   654
# Install IHV packages in PKGARCHIVE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   655
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   656
copy_ihv_pkgs() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   657
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   658
	if  [ $# -ne 2 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   659
		echo "usage: copy_ihv_pkgs LABEL SUFFIX"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   660
		exit 1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   661
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   662
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   663
	LABEL=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   664
	SUFFIX=$2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   665
	# always use non-DEBUG IHV packages
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   666
	IA32_IHV_PKGS=${IA32_IHV_PKGS_ORIG}-nd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   667
	PKGARCHIVE=${PKGARCHIVE_ORIG}${SUFFIX}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   668
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   669
	echo "\n==== Installing IHV packages from $IA32_IHV_PKGS ($LABEL) ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   670
		>> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   671
	if [ -d "$IA32_IHV_PKGS" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   672
		cd $IA32_IHV_PKGS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   673
		tar -cf - * | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   674
		   (cd $PKGARCHIVE; umask 0; tar xpf - ) 2>&1 >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   675
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   676
		echo "$IA32_IHV_PKGS: not found" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   677
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   678
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   679
	echo "\n==== Installing IHV packages from $IA32_IHV_BINARY_PKGS ($LABEL) ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   680
		>> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   681
	if [ -d "$IA32_IHV_BINARY_PKGS" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   682
		cd $IA32_IHV_BINARY_PKGS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   683
		tar -cf - * | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   684
		    (cd $PKGARCHIVE; umask 0; tar xpf - ) 2>&1 >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   685
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   686
		echo "$IA32_IHV_BINARY_PKGS: not found" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   687
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   688
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   689
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   690
build_tools() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   691
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   692
	if  [ $# -ne 1 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   693
		echo "usage: build_tools DESTROOT"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   694
		exit 1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   695
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   696
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   697
	DESTROOT=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   698
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   699
	INSTALLOG=install-${MACH}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   700
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   701
	echo "\n==== Building tools at `date` ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   702
		>> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   703
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   704
	rm -f ${TOOLS}/${INSTALLOG}.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   705
	cd ${TOOLS}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   706
	/bin/time $MAKE ROOT=${DESTROOT} -e install 2>&1 | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   707
	    tee -a ${TOOLS}/${INSTALLOG}.out >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   708
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   709
	echo "\n==== Tools build errors ====\n" >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   710
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   711
	egrep ":" ${TOOLS}/${INSTALLOG}.out |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   712
		egrep -e "(${MAKE}:|[ 	]error[: 	\n])" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   713
		egrep -v "Ignoring unknown host" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   714
		egrep -v warning >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   715
	if [ "$?" != "0" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   716
		STABS=${DESTROOT}/opt/onbld/bin/${MACH}/stabs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   717
		export STABS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   718
		CTFSTABS=${DESTROOT}/opt/onbld/bin/${MACH}/ctfstabs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   719
		export CTFSTABS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   720
		GENOFFSETS=${DESTROOT}/opt/onbld/bin/genoffsets
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   721
		export GENOFFSETS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   722
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   723
		CTFCONVERT=${DESTROOT}/opt/onbld/bin/${MACH}/ctfconvert
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   724
		export CTFCONVERT
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   725
		CTFMERGE=${DESTROOT}/opt/onbld/bin/${MACH}/ctfmerge
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   726
		export CTFMERGE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   727
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   728
		CTFCVTPTBL=${DESTROOT}/opt/onbld/bin/ctfcvtptbl
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   729
		export CTFCVTPTBL
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   730
		CTFFINDMOD=${DESTROOT}/opt/onbld/bin/ctffindmod
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   731
		export CTFFINDMOD
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   732
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   733
		if [ "$VERIFY_ELFSIGN" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   734
			ELFSIGN=${DESTROOT}/opt/onbld/bin/elfsigncmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   735
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   736
			ELFSIGN=${DESTROOT}/opt/onbld/bin/${MACH}/elfsign
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   737
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   738
		export ELFSIGN
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   739
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   740
		PATH="${DESTROOT}/opt/onbld/bin/${MACH}:${PATH}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   741
		PATH="${DESTROOT}/opt/onbld/bin:${PATH}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   742
		export PATH
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   743
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   744
		echo "\n==== New environment settings. ====\n" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   745
		echo "STABS=${STABS}" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   746
		echo "CTFSTABS=${CTFSTABS}" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   747
		echo "CTFCONVERT=${CTFCONVERT}" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   748
		echo "CTFMERGE=${CTFMERGE}" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   749
		echo "CTFCVTPTBL=${CTFCVTPTBL}" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   750
		echo "CTFFINDMOD=${CTFFINDMOD}" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   751
		echo "ELFSIGN=${ELFSIGN}" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   752
		echo "PATH=${PATH}" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   753
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   754
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   755
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   756
staffer() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   757
	if [ $ISUSER -ne 0 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   758
		"$@"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   759
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   760
		arg="\"$1\""
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   761
		shift
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   762
		for i
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   763
		do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   764
			arg="$arg \"$i\""
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   765
		done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   766
		eval su $STAFFER -c \'$arg\'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   767
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   768
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   769
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   770
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   771
MACH=`uname -p`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   772
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   773
if [ "$OPTHOME" = "" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   774
	OPTHOME=/opt
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   775
	export OPTHOME
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   776
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   777
if [ "$TEAMWARE" = "" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   778
	TEAMWARE=$OPTHOME/teamware
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   779
	export TEAMWARE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   780
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   781
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   782
USAGE='Usage: nightly [-in] [-V VERS ] [ -S E|D|H ] <env_file>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   783
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   784
Where:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   785
	-i	Fast incremental options (no clobber, lint, check, gprof, trace)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   786
	-n      Do not do a bringover
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   787
	-V VERS set the build version string to VERS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   788
	-S	Build a variant of the source product
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   789
		E - build exportable source
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   790
		D - build domestic source (exportable + crypt)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   791
		H - build hybrid source (binaries + deleted source)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   792
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   793
	<env_file>  file in Bourne shell syntax that sets and exports
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   794
	variables that configure the operation of this script and many of
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   795
	the scripts this one calls. If <env_file> does not exist,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   796
	it will be looked for in $OPTHOME/onbld/env.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   797
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   798
non-DEBUG is the default build type. Build options can be set in the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   799
NIGHTLY_OPTIONS variable in the <env_file> as follows:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   800
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   801
	-A	check for ABI differences in .so files
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   802
	-C	check for cstyle/hdrchk errors
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   803
	-D	do a build with DEBUG on
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   804
	-F	do _not_ do a non-DEBUG build
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   805
	-G	gate keeper default group of options (-au)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   806
	-I	integration engineer default group of options (-ampu)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   807
	-M	do not run pmodes (safe file permission checker)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   808
	-N	do not run protocmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   809
	-P	do a build with GPROF on
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   810
	-R	default group of options for building a release (-mp)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   811
	-T	do a build with TRACE on
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   812
	-U	update proto area in the parent
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   813
	-V VERS set the build version string to VERS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   814
	-X	copy x86 IHV packages
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   815
	-a	create cpio archives
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   816
	-d	use Distributed Make (default uses Parallel Make)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   817
	-f	find unreferenced files
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   818
	-i	do an incremental build (no "make clobber")
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   819
	-l	do "make lint" in $LINTDIRS (default: $SRC y)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   820
	-m	send mail to $MAILTO at end of build
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   821
	-n      do not do a bringover
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   822
	-o	build using root privileges to set OWNER/GROUP (old style)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   823
	-p	create packages
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   824
	-r	check ELF runtime attributes in the proto area
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   825
	-t	build and use the tools in $SRC/tools
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   826
	-u	update proto_list_$MACH and friends in the parent workspace;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   827
		when used with -f, also build an unrefmaster.out in the parent
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   828
	-z	compress cpio archives with gzip
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   829
	-W	Do not report warnings (freeware gate ONLY)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   830
	-S	Build a variant of the source product
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   831
		E - build exportable source
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   832
		D - build domestic source (exportable + crypt)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   833
		H - build hybrid source (binaries + deleted source)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   834
'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   835
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   836
#	-x	less public handling of xmod source for the source product
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   837
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   838
#	A log file will be generated under the name $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   839
#	for partially completed build and log.`date '+%m%d%y'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   840
#	in the same directory for fully completed builds.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   841
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   842
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   843
# default values for low-level FLAGS; G I R are group FLAGS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   844
A_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   845
a_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   846
d_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   847
C_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   848
F_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   849
f_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   850
D_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   851
P_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   852
T_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   853
n_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   854
o_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   855
i_FLAG=n; i_CMD_LINE_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   856
l_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   857
m_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   858
p_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   859
r_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   860
t_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   861
u_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   862
U_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   863
V_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   864
M_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   865
N_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   866
z_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   867
W_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   868
SE_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   869
SD_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   870
SH_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   871
X_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   872
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   873
XMOD_OPT=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   874
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   875
build_ok=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   876
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   877
# examine arguments
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   878
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   879
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   880
OPTIND=1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   881
while getopts inV:S:t FLAG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   882
do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   883
	case $FLAG in
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   884
	  i )	i_FLAG=y; i_CMD_LINE_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   885
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   886
	  n )	n_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   887
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   888
	  V )	V_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   889
		V_ARG="$OPTARG"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   890
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   891
	  S )
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   892
		if [ "$SE_FLAG" = "y" -o "$SD_FLAG" = "y" -o "$SH_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   893
			echo "Can only build one source variant at a time."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   894
			exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   895
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   896
		if [ "${OPTARG}" = "E" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   897
			SE_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   898
		elif [ "${OPTARG}" = "D" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   899
			SD_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   900
		elif [ "${OPTARG}" = "H" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   901
			SH_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   902
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   903
			echo "$USAGE"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   904
			exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   905
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   906
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   907
	  t )	t_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   908
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   909
	 \? )	echo "$USAGE"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   910
		exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   911
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   912
	esac
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   913
done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   914
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   915
# correct argument count after options
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   916
shift `expr $OPTIND - 1`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   917
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   918
# test that the path to the environment-setting file was given
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   919
if [ $# -ne 1 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   920
	echo "$USAGE"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   921
	exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   922
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   923
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   924
# check if user is running nightly as root
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   925
# ISUSER is set non-zero if an ordinary user runs nightly, or is zero
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   926
# when root invokes nightly.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   927
/usr/bin/id | grep '^uid=0(' >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   928
ISUSER=$?;	export ISUSER
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   929
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   930
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   931
# force locale to C
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   932
LC_COLLATE=C;	export LC_COLLATE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   933
LC_CTYPE=C;	export LC_CTYPE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   934
LC_MESSAGES=C;	export LC_MESSAGES
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   935
LC_MONETARY=C;	export LC_MONETARY
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   936
LC_NUMERIC=C;	export LC_NUMERIC
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   937
LC_TIME=C;	export LC_TIME
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   938
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   939
# clear environment variables we know to be bad for the build
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   940
unset LD_OPTIONS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   941
unset LD_AUDIT		LD_AUDIT_32		LD_AUDIT_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   942
unset LD_BIND_NOW	LD_BIND_NOW_32		LD_BIND_NOW_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   943
unset LD_BREADTH	LD_BREADTH_32		LD_BREADTH_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   944
unset LD_CONFIG		LD_CONFIG_32		LD_CONFIG_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   945
unset LD_DEBUG		LD_DEBUG_32		LD_DEBUG_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   946
unset LD_DEMANGLE	LD_DEMANGLE_32		LD_DEMANGLE_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   947
unset LD_FLAGS		LD_FLAGS_32		LD_FLAGS_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   948
unset LD_LIBRARY_PATH	LD_LIBRARY_PATH_32	LD_LIBRARY_PATH_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   949
unset LD_LOADFLTR	LD_LOADFLTR_32		LD_LOADFLTR_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   950
unset LD_NOAUDIT	LD_NOAUDIT_32		LD_NOAUDIT_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   951
unset LD_NOAUXFLTR	LD_NOAUXFLTR_32		LD_NOAUXFLTR_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   952
unset LD_NOCONFIG	LD_NOCONFIG_32		LD_NOCONFIG_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   953
unset LD_NODIRCONFIG	LD_NODIRCONFIG_32	LD_NODIRCONFIG_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   954
unset LD_NODIRECT	LD_NODIRECT_32		LD_NODIRECT_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   955
unset LD_NOLAZYLOAD	LD_NOLAZYLOAD_32	LD_NOLAZYLOAD_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   956
unset LD_NOOBJALTER	LD_NOOBJALTER_32	LD_NOOBJALTER_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   957
unset LD_NOVERSION	LD_NOVERSION_32		LD_NOVERSION_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   958
unset LD_ORIGIN		LD_ORIGIN_32		LD_ORIGIN_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   959
unset LD_PRELOAD	LD_PRELOAD_32		LD_PRELOAD_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   960
unset LD_PROFILE	LD_PROFILE_32		LD_PROFILE_64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   961
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   962
unset CONFIG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   963
unset GROUP
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   964
unset OWNER
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   965
unset REMOTE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   966
unset ENV
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   967
unset ARCH
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   968
unset CLASSPATH
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   969
unset NAME
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   970
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   971
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   972
#	Setup environmental variables
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   973
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   974
if [ -f $1 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   975
	if [[ $1 = */* ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   976
		. $1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   977
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   978
		. ./$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   979
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   980
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   981
	if [ -f $OPTHOME/onbld/env/$1 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   982
		. $OPTHOME/onbld/env/$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   983
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   984
		echo "Cannot find env file as either $1 or $OPTHOME/onbld/env/$1"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   985
		exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   986
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   987
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   988
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   989
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   990
# place ourselves in a new task, respecting BUILD_PROJECT if set.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   991
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   992
if [ -z "$BUILD_PROJECT" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   993
	/usr/bin/newtask -c $$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   994
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   995
	/usr/bin/newtask -c $$ -p $BUILD_PROJECT
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   996
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   997
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   998
ps -o taskid= -p $$ | read build_taskid
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   999
ps -o project= -p $$ | read build_project
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1000
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1001
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1002
# See if NIGHTLY_OPTIONS is set
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1003
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1004
if [ "$NIGHTLY_OPTIONS" = "" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1005
	NIGHTLY_OPTIONS="-aBm"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1006
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1007
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1008
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1009
# If BRINGOVER_WS was not specified, let it default to CLONE_WS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1010
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1011
if [ "$BRINGOVER_WS" = "" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1012
	BRINGOVER_WS=$CLONE_WS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1013
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1014
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1015
#
458
92c1210ccd92 4933161 nightly should allow the env file to choose what files to bringover
mike_s
parents: 411
diff changeset
  1016
# If BRINGOVER_FILES was not specified, default to usr/src
92c1210ccd92 4933161 nightly should allow the env file to choose what files to bringover
mike_s
parents: 411
diff changeset
  1017
#
92c1210ccd92 4933161 nightly should allow the env file to choose what files to bringover
mike_s
parents: 411
diff changeset
  1018
if [ "$BRINGOVER_FILES" = "" ]; then
92c1210ccd92 4933161 nightly should allow the env file to choose what files to bringover
mike_s
parents: 411
diff changeset
  1019
	BRINGOVER_FILES="usr/src"
92c1210ccd92 4933161 nightly should allow the env file to choose what files to bringover
mike_s
parents: 411
diff changeset
  1020
fi
92c1210ccd92 4933161 nightly should allow the env file to choose what files to bringover
mike_s
parents: 411
diff changeset
  1021
92c1210ccd92 4933161 nightly should allow the env file to choose what files to bringover
mike_s
parents: 411
diff changeset
  1022
#
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1023
# Note: changes to the option letters here should also be applied to the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1024
#	bldenv script.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1025
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1026
OPTIND=1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1027
while getopts ABDFNMPTCGIRafinlmoptuUxdrtzWS:X FLAG $NIGHTLY_OPTIONS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1028
do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1029
	case $FLAG in
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1030
	  A )	A_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1031
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1032
	  B )	D_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1033
		;; # old version of D
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1034
	  F )	F_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1035
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1036
	  D )	D_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1037
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1038
	  P )	P_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1039
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1040
	  T )	T_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1041
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1042
	  C )	C_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1043
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1044
	  M )	M_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1045
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1046
	  N )	N_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1047
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1048
	  G )	a_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1049
		u_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1050
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1051
	  I )	a_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1052
		m_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1053
		p_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1054
		u_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1055
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1056
	  R )	m_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1057
		p_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1058
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1059
	  a )	a_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1060
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1061
	  d )	d_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1062
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1063
	  f )	f_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1064
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1065
	  i )	i_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1066
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1067
	  n )	n_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1068
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1069
	  o )	o_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1070
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1071
	  l )	l_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1072
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1073
	  m )	m_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1074
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1075
	  p )	p_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1076
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1077
	  r )	r_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1078
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1079
	  t )	t_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1080
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1081
	  u )	u_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1082
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1083
	  z )	z_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1084
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1085
	  U )
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1086
		if [ -z "${PARENT_ROOT}" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1087
			echo "PARENT_ROOT must be set if the U flag is" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1088
			    "present in NIGHTLY_OPTIONS."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1089
			exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1090
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1091
		U_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1092
		NIGHTLY_PARENT_ROOT=$PARENT_ROOT
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1093
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1094
	  x )	XMOD_OPT="-x"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1095
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1096
	  W )	W_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1097
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1098
	  S )
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1099
		if [ "$SE_FLAG" = "y" -o "$SD_FLAG" = "y" -o "$SH_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1100
			echo "Can only build one source variant at a time."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1101
			exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1102
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1103
		if [ "${OPTARG}" = "E" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1104
			SE_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1105
		elif [ "${OPTARG}" = "D" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1106
			SD_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1107
		elif [ "${OPTARG}" = "H" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1108
			SH_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1109
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1110
			echo "$USAGE"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1111
			exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1112
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1113
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1114
	  X )	# now that we no longer need realmode builds, just
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1115
		# copy IHV packages.  only meaningful on x86.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1116
		if [ "$MACH" = "i386" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1117
			X_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1118
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1119
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1120
	 \? )	echo "$USAGE"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1121
		exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1122
		;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1123
	esac
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1124
done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1125
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1126
if [ $ISUSER -ne 0 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1127
	if [ "$o_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1128
		echo "Old-style build requires root permission."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1129
		exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1130
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1131
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1132
	# Set default value for STAFFER, if needed.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1133
	if [ -z "$STAFFER" -o "$STAFFER" = "nobody" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1134
		STAFFER=`/usr/xpg4/bin/id -un`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1135
		export STAFFER
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1136
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1137
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1138
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1139
if [ -z "$MAILTO" -o "$MAILTO" = "nobody" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1140
	MAILTO=$STAFFER
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1141
	export MAILTO
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1142
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1143
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1144
PATH="$OPTHOME/onbld/bin:$OPTHOME/onbld/bin/${MACH}:/usr/ccs/bin"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1145
PATH="$PATH:$OPTHOME/SUNWspro/bin:$TEAMWARE/bin:/usr/bin:/usr/sbin:/usr/ucb"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1146
PATH="$PATH:/usr/openwin/bin:/usr/sfw/bin:/opt/sfw/bin:."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1147
export PATH
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1148
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1149
unset CH
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1150
if [ "$o_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1151
# root invoked old-style build -- make sure it works as it always has
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1152
# by exporting 'CH'.  The current Makefile.master doesn't use this, but
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1153
# the old ones still do.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1154
	PROTOCMPTERSE="protocmp.terse"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1155
	CH=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1156
	export CH
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1157
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1158
	PROTOCMPTERSE="protocmp.terse -gu"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1159
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1160
POUND_SIGN="#"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1161
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1162
# we export POUND_SIGN to speed up the build process -- prevents evaluation of
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1163
# the Makefile.master definitions.
524
259d2acc2f55 5072038 binaries shouldn't be stripped
rie
parents: 458
diff changeset
  1164
export o_FLAG POUND_SIGN
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1165
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1166
if [ "$d_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1167
	maketype="distributed"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1168
	MAKE=dmake
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1169
	# get the dmake version string alone
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1170
	DMAKE_VERSION=$( $MAKE -v )
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1171
	DMAKE_VERSION=${DMAKE_VERSION#*: }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1172
	# focus in on just the dotted version number alone
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1173
	DMAKE_MAJOR=$( echo $DMAKE_VERSION | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1174
		sed -e 's/.*\<\([^.]*\.[^   ]*\).*$/\1/' )
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1175
	# extract the second (or final) integer
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1176
	DMAKE_MINOR=${DMAKE_MAJOR#*.}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1177
	DMAKE_MINOR=${DMAKE_MINOR%%.*}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1178
	# extract the first integer
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1179
	DMAKE_MAJOR=${DMAKE_MAJOR%%.*}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1180
	CHECK_DMAKE=${CHECK_DMAKE:-y}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1181
	# x86 was built on the 12th, sparc on the 13th.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1182
	if [ "$CHECK_DMAKE" = "y" -a \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1183
	     "$DMAKE_VERSION" != "Sun Distributed Make 7.3 2003/03/12" -a \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1184
	     "$DMAKE_VERSION" != "Sun Distributed Make 7.3 2003/03/13" -a \( \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1185
	     "$DMAKE_MAJOR" -lt 7 -o \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1186
	     "$DMAKE_MAJOR" -eq 7 -a "$DMAKE_MINOR" -lt 4 \) ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1187
		if [ -z "$DMAKE_VERSION" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1188
			echo "$MAKE is missing."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1189
			exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1190
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1191
		echo `whence $MAKE`" version is:"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1192
		echo "  ${DMAKE_VERSION}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1193
		cat <<EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1194
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1195
This version may not be safe for use.  Either set TEAMWARE to a better
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1196
path or (if you really want to use this version of dmake anyway), add
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1197
the following to your environment to disable this check:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1198
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1199
  CHECK_DMAKE=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1200
EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1201
		exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1202
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1203
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1204
	PATH="$TEAMWARE/ParallelMake/bin:$PATH"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1205
	maketype="parallel"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1206
	MAKE=make
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1207
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1208
export PATH
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1209
export MAKE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1210
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1211
if [ "${SUNWSPRO}" != "" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1212
	PATH="${SUNWSPRO}/bin:$PATH"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1213
	export PATH
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1214
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1215
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1216
hostname=`uname -n`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1217
if [ ! -f $HOME/.make.machines ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1218
	DMAKE_MAX_JOBS=4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1219
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1220
	DMAKE_MAX_JOBS="`grep $hostname $HOME/.make.machines | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1221
	    tail -1 | awk -F= '{print $ 2;}'`"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1222
	if [ "$DMAKE_MAX_JOBS" = "" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1223
		DMAKE_MAX_JOBS=4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1224
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1225
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1226
DMAKE_MODE=parallel;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1227
export DMAKE_MODE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1228
export DMAKE_MAX_JOBS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1229
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1230
if [ -z "${ROOT}" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1231
	echo "ROOT must be set."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1232
	exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1233
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1234
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1235
if [ "$SE_FLAG" = "y" -o "$SD_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1236
        if [ -z "${EXPORT_SRC}" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1237
		echo "EXPORT_SRC must be set for a source build."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1238
		exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1239
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1240
        if [ -z "${CRYPT_SRC}" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1241
		echo "CRYPT_SRC must be set for a source build."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1242
		exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1243
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1244
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1245
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1246
if [ "$SH_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1247
        if [ -z "${EXPORT_SRC}" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1248
		echo "EXPORT_SRC must be set for a source build."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1249
		exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1250
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1251
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1252
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1253
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1254
# if -V flag was given, reset VERSION to V_ARG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1255
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1256
if [ "$V_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1257
	VERSION=$V_ARG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1258
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1259
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1260
# Append source version
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1261
if [ "$SE_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1262
	VERSION="${VERSION}:EXPORT"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1263
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1264
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1265
if [ "$SD_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1266
	VERSION="${VERSION}:DOMESTIC"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1267
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1268
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1269
if [ "$SH_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1270
	VERSION="${VERSION}:MODIFIED_SOURCE_PRODUCT"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1271
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1272
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1273
TMPDIR="/tmp/nightly.tmpdir.$$"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1274
export TMPDIR
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1275
rm -rf ${TMPDIR}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1276
mkdir -p $TMPDIR || exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1277
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1278
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1279
# Keep elfsign's use of pkcs11_softtoken from looking in the user home 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1280
# directory, which doesn't always work.   Needed until all build machines 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1281
# have the fix for 6271754
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1282
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1283
SOFTTOKEN_DIR=$TMPDIR
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1284
export SOFTTOKEN_DIR
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1285
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1286
TOOLS=${SRC}/tools
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1287
TOOLS_PROTO=${TOOLS}/proto
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1288
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1289
unset   CFLAGS LD_LIBRARY_PATH LDFLAGS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1290
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1291
# create directories that are automatically removed if the nightly script
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1292
# fails to start correctly
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1293
newdir() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1294
	dir=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1295
	toadd=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1296
	while [ ! -d $dir ]; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1297
		toadd="$dir $toadd"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1298
		dir=`dirname $dir`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1299
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1300
	torm=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1301
	newlist=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1302
	for dir in $toadd; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1303
		if staffer mkdir $dir; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1304
			newlist="$ISUSER $dir $newlist"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1305
			torm="$dir $torm"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1306
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1307
			[ -z "$torm" ] || staffer rmdir $torm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1308
			return 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1309
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1310
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1311
	newdirlist="$newlist $newdirlist"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1312
	return 0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1313
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1314
newdirlist=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1315
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1316
[ -d $CODEMGR_WS ] || newdir $CODEMGR_WS || exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1317
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1318
# since this script assumes the build is from full source, it nullifies
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1319
# variables likely to have been set by a "ws" script; nullification
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1320
# confines the search space for headers and libraries to the proto area
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1321
# built from this immediate source.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1322
ENVLDLIBS1=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1323
ENVLDLIBS2=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1324
ENVLDLIBS3=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1325
ENVCPPFLAGS1=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1326
ENVCPPFLAGS2=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1327
ENVCPPFLAGS3=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1328
ENVCPPFLAGS4=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1329
PARENT_ROOT=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1330
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1331
export ENVLDLIBS3 ENVCPPFLAGS1 ENVCPPFLAGS2 ENVCPPFLAGS3 ENVCPPFLAGS4 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1332
	PARENT_ROOT
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1333
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1334
ENVLDLIBS1="-L$ROOT/lib -L$ROOT/usr/lib"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1335
ENVCPPFLAGS1="-I$ROOT/usr/include"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1336
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1337
export ENVLDLIBS1 ENVLDLIBS2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1338
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1339
CPIODIR_ORIG=$CPIODIR
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1340
PKGARCHIVE_ORIG=$PKGARCHIVE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1341
IA32_IHV_PKGS_ORIG=$IA32_IHV_PKGS
338
05079e64a96e 6308636 need method of rebuilding sparc SUNWrmodu
jg
parents: 0
diff changeset
  1342
if [ "$SPARC_RM_PKGARCHIVE" ]; then
05079e64a96e 6308636 need method of rebuilding sparc SUNWrmodu
jg
parents: 0
diff changeset
  1343
	SPARC_RM_PKGARCHIVE_ORIG=$SPARC_RM_PKGARCHIVE
05079e64a96e 6308636 need method of rebuilding sparc SUNWrmodu
jg
parents: 0
diff changeset
  1344
fi
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1345
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1346
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1347
# Juggle the logs and optionally send mail on completion.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1348
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1349
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1350
logshuffle() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1351
    	LLOG="$ATLOG/log.`date '+%m%d'`"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1352
	rm -rf $ATLOG/log.??`date '+%d'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1353
	if [ -f $LLOG -o -d $LLOG ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1354
	    	LLOG=$LLOG.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1355
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1356
	mkdir $LLOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1357
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1358
	if [ "$build_ok" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1359
		mv $ATLOG/proto_list_${MACH} $LLOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1360
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1361
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1362
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1363
	# Now that we're about to send mail, it's time to check the noise
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1364
	# file.  In the event that an error occurs beyond this point, it will
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1365
	# be recorded in the nightly.log file, but nowhere else.  This would
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1366
	# include only errors that cause the copying of the noise log to fail
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1367
	# or the mail itself not to be sent.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1368
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1369
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1370
	exec >>$LOGFILE 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1371
	if [ -s $build_noise_file ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1372
	    	echo "\n==== Nightly build noise ====\n" |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1373
		    tee -a $LOGFILE >>$mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1374
		cat $build_noise_file >>$LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1375
		cat $build_noise_file >>$mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1376
		echo | tee -a $LOGFILE >>$mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1377
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1378
	rm -f $build_noise_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1379
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1380
	case "$build_ok" in
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1381
		y)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1382
			state=Completed
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1383
			;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1384
		i)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1385
			state=Interrupted
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1386
			;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1387
		*)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1388
	    		state=Failed
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1389
			;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1390
	esac
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1391
	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1392
	cat $build_time_file $mail_msg_file > ${LLOG}/mail_msg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1393
	if [ "$m_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1394
	    	cat $build_time_file $mail_msg_file |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1395
		    /usr/bin/mailx -s \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1396
	"Nightly ${MACH} Build of `basename ${CODEMGR_WS}` ${state}." \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1397
			${MAILTO}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1398
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1399
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1400
	if [ "$u_FLAG" = "y" -a "$build_ok" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1401
	    	staffer cp ${LLOG}/mail_msg $PARENT_WS/usr/src/mail_msg-${MACH}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1402
		staffer cp $LOGFILE $PARENT_WS/usr/src/nightly-${MACH}.log
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1403
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1404
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1405
	mv $LOGFILE $LLOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1406
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1407
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1408
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1409
#	Remove the locks and temporary files on any exit
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1410
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1411
cleanup() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1412
    	logshuffle
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1413
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1414
	[ -z "$lockfile" ] || staffer rm -f $lockfile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1415
	[ -z "$atloglockfile" ] || rm -f $atloglockfile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1416
	[ -z "$ulockfile" ] || staffer rm -f $ulockfile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1417
	[ -z "$Ulockfile" ] || rm -f $Ulockfile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1418
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1419
	set -- $newdirlist
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1420
	while [ $# -gt 0 ]; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1421
		ISUSER=$1 staffer rmdir $2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1422
		shift; shift
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1423
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1424
	rm -rf $TMPDIR
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1425
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1426
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1427
cleanup_signal() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1428
    	build_ok=i
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1429
	# this will trigger cleanup(), above.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1430
	exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1431
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1432
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1433
trap cleanup 0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1434
trap cleanup_signal 1 2 3 15
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1435
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1436
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1437
# Generic lock file processing -- make sure that the lock file doesn't
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1438
# exist.  If it does, it should name the build host and PID.  If it
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1439
# doesn't, then make sure we can create it.  Clean up locks that are
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1440
# known to be stale (assumes host name is unique among build systems
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1441
# for the workspace).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1442
create_lock() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1443
	lockf=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1444
	lockvar=$2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1445
	if [ -f $lockf ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1446
		basews=`basename $CODEMGR_WS`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1447
		if read host user pid < $lockf; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1448
			if [ "$host" != "$hostname" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1449
				echo "$MACH build of $basews apparently" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1450
				    "already started by $user on $host as $pid."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1451
			elif kill -s 0 $pid 2>/dev/null; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1452
				echo "$MACH build of $basews already started" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1453
				    "by $user as $pid."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1454
			else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1455
				# stale lock; clear it out and continue
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1456
				rm -f $lockf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1457
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1458
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1459
			echo "$MACH build of $basews already running."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1460
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1461
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1462
	if [ -f $lockf ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1463
		echo "Lock file is $lockf."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1464
		exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1465
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1466
	ldir=`dirname $lockf`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1467
	[ -d $ldir ] || newdir $ldir || exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1468
	eval $lockvar=$lockf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1469
	staffer sh -c "echo $hostname $STAFFER $$ > $lockf" || exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1470
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1471
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1472
# Ensure no other instance of this script is running on this host.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1473
# LOCKNAME can be set in <env_file>, and is by default, but is not
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1474
# required due to the use of $ATLOG below.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1475
if [ -n "$LOCKNAME" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1476
	create_lock /tmp/$LOCKNAME "lockfile"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1477
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1478
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1479
# Create from one, two, or three other locks:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1480
#	$ATLOG/nightly.lock
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1481
#		- protects against multiple builds in same workspace
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1482
#	$PARENT_WS/usr/src/nightly.$MACH.lock
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1483
#		- protects against multiple 'u' copy-backs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1484
#	$NIGHTLY_PARENT_ROOT/nightly.lock
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1485
#		- protects against multiple 'U' copy-backs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1486
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1487
# Overriding ISUSER to 1 causes the lock to be created as root if the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1488
# script is run as root.  The default is to create it as $STAFFER.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1489
ISUSER=1 create_lock $ATLOG/nightly.lock "atloglockfile"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1490
if [ "$u_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1491
	create_lock $PARENT_WS/usr/src/nightly.$MACH.lock "ulockfile"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1492
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1493
if [ "$U_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1494
	# NIGHTLY_PARENT_ROOT is written as root if script invoked as root.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1495
	ISUSER=1 create_lock $NIGHTLY_PARENT_ROOT/nightly.lock "Ulockfile"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1496
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1497
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1498
# Locks have been taken, so we're doing a build and we're committed to
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1499
# the directories we may have created so far.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1500
newdirlist=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1501
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1502
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1503
# Create mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1504
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1505
mail_msg_file="${TMPDIR}/mail_msg"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1506
touch $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1507
build_time_file="${TMPDIR}/build_time"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1508
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1509
#	Move old LOGFILE aside
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1510
#	ATLOG directory already made by 'create_lock' above
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1511
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1512
if [ -f $LOGFILE ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1513
	mv -f $LOGFILE ${LOGFILE}-
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1514
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1515
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1516
#	Build OsNet source
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1517
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1518
START_DATE=`date`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1519
SECONDS=0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1520
echo "\n==== Nightly $maketype build started:   $START_DATE ====" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1521
    | tee -a $LOGFILE > $build_time_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1522
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1523
# make sure we log only to the nightly build file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1524
build_noise_file="${TMPDIR}/build_noise"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1525
exec </dev/null >$build_noise_file 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1526
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1527
echo "\n==== list of environment variables ====\n" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1528
env >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1529
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1530
echo "\n==== Nightly argument issues ====\n" | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1531
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1532
if [ "$SE_FLAG" = "y" -o "$SD_FLAG" = "y" -o "$SH_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1533
	if [ "$i_FLAG" = "y" -o "$i_CMD_LINE_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1534
		echo "WARNING: the -S flags do not support incremental" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1535
		    "builds; forcing clobber\n" | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1536
		i_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1537
		i_CMD_LINE_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1538
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1539
	if [ "$N_FLAG" = "n" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1540
		echo "WARNING: the -S flags do not support protocmp;" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1541
		    "protocmp disabled\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1542
		    tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1543
		N_FLAG=y
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1544
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1545
	if [ "$l_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1546
		echo "WARNING: the -S flags do not support lint;" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1547
		    "lint disabled\n" | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1548
		l_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1549
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1550
	if [ "$C_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1551
		echo "WARNING: the -S flags do not support cstyle;" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1552
		    "cstyle check disabled\n" | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1553
		C_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1554
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1555
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1556
	if [ "$N_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1557
		if [ "$p_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1558
			cat <<EOF | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1559
WARNING: the p option (create packages) is set, but so is the N option (do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1560
         not run protocmp); this is dangerous; you should unset the N option
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1561
EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1562
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1563
			cat <<EOF | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1564
Warning: the N option (do not run protocmp) is set; it probably shouldn't be
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1565
EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1566
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1567
		echo "" | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1568
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1569
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1570
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1571
if [ "$a_FLAG" = "y" -a "$D_FLAG" = "n" -a "$F_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1572
	echo "WARNING: Neither DEBUG nor non-DEBUG build requested, but the" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1573
	    "'a' option was set." | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1574
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1575
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1576
if [ "$D_FLAG" = "n" -a "$l_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1577
	echo "WARNING: DEBUG build not requested, but lint will be with" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1578
	    "DEBUG enabled.\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1579
	    | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1580
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1581
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1582
if [ "$f_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1583
	if [ "$i_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1584
		echo "WARNING: the -f flag cannot be used during incremental" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1585
		    "builds; ignoring -f\n" | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1586
		f_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1587
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1588
	if [ "$p_FLAG" != "y" -o "$l_FLAG" != "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1589
		echo "WARNING: the -f flag requires -l and -p; ignoring -f\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1590
		    tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1591
		f_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1592
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1593
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1594
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1595
if [ "$T_FLAG" = "y" -a -d $SRC/uts/common/dtrace ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1596
	echo "WARNING: TRACE build requested but workspace contains DTrace;" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1597
	    "-T will have no effect\n" | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1598
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1599
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1600
if [ "$t_FLAG" = "n" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1601
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1602
	# We're not doing a tools build, so make sure elfsign(1) is
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1603
	# new enough to safely sign non-crypto binaries.  We test
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1604
	# debugging output from elfsign to detect the old version.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1605
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1606
	newelfsigntest=`SUNW_CRYPTO_DEBUG=stderr /usr/bin/elfsign verify \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1607
	    -e /usr/lib/security/pkcs11_softtoken.so.1 2>&1 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1608
	    | egrep algorithmOID`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1609
	if [ -z "$newelfsigntest" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1610
		echo "WARNING: /usr/bin/elfsign out of date;" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1611
		    "will only sign crypto modules\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1612
		    tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1613
		export ELFSIGN_OBJECT=true
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1614
	elif [ "$VERIFY_ELFSIGN" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1615
		echo "WARNING: VERIFY_ELFSIGN=y requires" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1616
		    "the -t flag; ignoring VERIFY_ELFSIGN\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1617
		    tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1618
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1619
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1620
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1621
echo "==== Build environment ====\n" | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1622
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1623
# System
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1624
whence uname | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1625
uname -a 2>&1 | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1626
echo | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1627
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1628
# nightly (will fail in year 2100 due to SCCS flaw)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1629
echo "$0 $@" | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1630
echo "%M% version %I% 20%E%\n" | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1631
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1632
# make
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1633
whence $MAKE | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1634
if [ "$d_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1635
	$MAKE -v | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1636
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1637
echo "number of concurrent jobs = $DMAKE_MAX_JOBS" |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1638
    tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1639
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1640
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1641
# Report the compiler versions.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1642
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1643
if [ -f $SRC/Makefile ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1644
	srcroot=$SRC
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1645
elif [ -f $BRINGOVER_WS/usr/src/Makefile ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1646
	srcroot=$BRINGOVER_WS/usr/src
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1647
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1648
	echo "\nUnable to find \"Makefile\" in $BRINGOVER_WS/usr/src or $SRC." |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1649
	    tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1650
	exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1651
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1652
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1653
( cd $srcroot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1654
  for target in cc-version cc64-version java-version; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1655
	echo
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1656
	# 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1657
	# Put statefile somewhere we know we can write to rather than trip
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1658
	# over a read-only $srcroot.  Use /usr/ccs/bin/make here because 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1659
	# it supports -K and ParallelMake doesn't.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1660
	# 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1661
	rm -f $TMPDIR/make-state
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1662
	if /usr/ccs/bin/make -K $TMPDIR/make-state -e $target 2>/dev/null; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1663
		continue
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1664
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1665
	touch $TMPDIR/nocompiler
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1666
  done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1667
  echo 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1668
) | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1669
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1670
if [ -f $TMPDIR/nocompiler ]; then 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1671
	rm -f $TMPDIR/nocompiler
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1672
	build_ok=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1673
	echo "Aborting due to missing compiler." | 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1674
		tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1675
	exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1676
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1677
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1678
# as
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1679
whence as | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1680
as -V 2>&1 | head -1 | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1681
echo | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1682
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1683
# Check that we're running a capable link-editor
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1684
whence ld | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1685
LDVER=`ld -V 2>&1`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1686
echo $LDVER | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1687
LDVER=`echo $LDVER | sed -e "s/.*-1\.//" -e "s/:.*//"`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1688
if [ `expr $LDVER \< 422` -eq 1 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1689
	echo "The link-editor needs to be at version 422 or higher to build" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1690
	    tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1691
	echo "the latest stuff, hope your build works." | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1692
	    tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1693
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1694
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1695
echo "\nBuild project:  $build_project\nBuild taskid:   $build_taskid" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1696
    tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1697
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1698
echo "\n==== Build version ====\n" | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1699
echo $VERSION | tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1700
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1701
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1702
#	Decide whether to clobber
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1703
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1704
if [ "$i_FLAG" = "n" -a -d "$SRC" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1705
	echo "\n==== Make clobber at `date` ====\n" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1706
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1707
	cd $SRC
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1708
	# remove old clobber file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1709
	rm -f $SRC/clobber.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1710
	rm -f $SRC/clobber-${MACH}.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1711
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1712
	# Remove all .make.state* files, just in case we are restarting
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1713
	# the build after having interrupted a previous 'make clobber'.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1714
	find . \( -name SCCS -o -name 'interfaces.*' \) -prune \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1715
	    -o -name '.make.*' -print | xargs rm -f
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1716
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1717
	$MAKE -ek clobber 2>&1 | tee -a $SRC/clobber-${MACH}.out >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1718
	echo "\n==== Make clobber ERRORS ====\n" >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1719
	grep "$MAKE:" $SRC/clobber-${MACH}.out |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1720
		egrep -v "Ignoring unknown host" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1721
		>> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1722
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1723
	if [ "$t_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1724
		echo "\n==== Make tools clobber at `date` ====\n" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1725
		cd ${TOOLS}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1726
		rm -f ${TOOLS}/clobber-${MACH}.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1727
		$MAKE -ek clobber 2>&1 | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1728
			tee -a ${TOOLS}/clobber-${MACH}.out >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1729
		echo "\n==== Make tools clobber ERRORS ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1730
			>> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1731
		grep "$MAKE:" ${TOOLS}/clobber-${MACH}.out \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1732
			>> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1733
		rm -rf ${TOOLS_PROTO}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1734
		mkdir -p ${TOOLS_PROTO}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1735
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1736
	rm -rf $ROOT
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1737
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1738
	# Get back to a clean workspace as much as possible to catch
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1739
	# problems that only occur on fresh workspaces.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1740
	# Remove all .make.state* files, libraries, and .o's that may
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1741
	# have been ommitted from clobber.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1742
	# We should probably blow away temporary directories too.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1743
	cd $SRC
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1744
	find . \( -name SCCS -o -name 'interfaces.*' \) -prune -o \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1745
	    \( -name '.make.*' -o -name 'lib*.a' -o -name 'lib*.so*' -o \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1746
	       -name '*.o' \) -print | xargs rm -f
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1747
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1748
	echo "\n==== No clobber at `date` ====\n" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1749
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1750
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1751
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1752
#	Decide whether to bringover to the codemgr workspace
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1753
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1754
if [ "$n_FLAG" = "n" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1755
	echo "\n==== bringover to $CODEMGR_WS at `date` ====\n" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1756
	# sleep on the parent workspace's lock
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1757
	while egrep -s write $BRINGOVER_WS/Codemgr_wsdata/locks
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1758
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1759
		sleep 120
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1760
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1761
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1762
	echo "\n==== BRINGOVER LOG ====\n" >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1763
	staffer $TEAMWARE/bin/bringover -c "nightly update" -p $BRINGOVER_WS \
458
92c1210ccd92 4933161 nightly should allow the env file to choose what files to bringover
mike_s
parents: 411
diff changeset
  1764
	    -w $CODEMGR_WS $BRINGOVER_FILES < /dev/null 2>&1 | \
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1765
		tee -a  $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1766
	if [ $? -eq 1 ]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1767
	then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1768
		echo "trouble with bringover, quitting at `date`." >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1769
		exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1770
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1771
	if [ -d $SRC/cmd/lp/cmd/lpsched/lpsched -a \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1772
	    ! -f $SRC/cmd/lp/cmd/lpsched/lpsched/Makefile ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1773
		# on297 printing
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1774
		rm -rf $SRC/cmd/lp/cmd/lpsched/lpsched
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1775
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1776
	if [ -d $SRC/cmd/localedef/localedef -a \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1777
	    ! -f $SRC/cmd/localedef/localedef/Makefile ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1778
		# on297 CSI project
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1779
		rm -rf $SRC/cmd/localedef/localedef
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1780
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1781
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1782
	echo "\n==== No bringover to $CODEMGR_WS ====\n" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1783
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1784
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1785
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1786
# Build tools if requested
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1787
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1788
if [ "$t_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1789
	export INTERNAL_RELEASE_BUILD ; INTERNAL_RELEASE_BUILD=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1790
	export RELEASE_BUILD ; RELEASE_BUILD=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1791
	unset EXTRA_OPTIONS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1792
	unset EXTRA_CFLAGS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1793
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1794
	export ONBLD_TOOLS=${ONBLD_TOOLS:=${TOOLS_PROTO}/opt/onbld}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1795
	build_tools ${TOOLS_PROTO}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1796
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1797
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1798
if [ "$i_FLAG" = "y" -a "$SH_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1799
	echo "\n==== NOT Building base OS-Net source ====\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1800
	    tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1801
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1802
	normal_build
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1803
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1804
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1805
ORIG_SRC=$SRC
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1806
BINARCHIVE=${CODEMGR_WS}/bin-${MACH}.cpio.Z
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1807
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1808
if [ "$SE_FLAG" = "y" -o "$SD_FLAG" = "y" -o "$SH_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1809
	save_binaries
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1810
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1811
	echo "\n==== Retrieving SCCS files at `date` ====\n" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1812
	SCCSHELPER=${TMPDIR}/sccs-helper
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1813
	rm -f ${SCCSHELPER}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1814
cat >${SCCSHELPER} <<EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1815
#!/bin/ksh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1816
cd \$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1817
cd ..
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1818
sccs get SCCS >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1819
EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1820
	cd $SRC
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1821
	chmod +x ${SCCSHELPER}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1822
	find . -name SCCS | xargs -L 1 ${SCCSHELPER}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1823
	rm -f ${SCCSHELPER}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1824
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1825
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1826
if [ "$SD_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1827
	clone_source ${CODEMGR_WS} ${CRYPT_SRC} CRYPT_SRC
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1828
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1829
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1830
# EXPORT_SRC comes after CRYPT_SRC since a domestic build will need
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1831
# $SRC pointing to the export_source usr/src.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1832
if [ "$SE_FLAG" = "y" -o "$SD_FLAG" = "y" -o "$SH_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1833
	clone_source ${CODEMGR_WS} ${EXPORT_SRC} EXPORT_SRC
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1834
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1835
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1836
if [ "$SD_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1837
	# drop the crypt files in place.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1838
	cd ${EXPORT_SRC}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1839
	echo "\nextracting crypt_files.cpio.Z onto export_source.\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1840
	    >> ${LOGFILE}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1841
	zcat ${CODEMGR_WS}/crypt_files.cpio.Z | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1842
	    cpio -idmucvB 2>/dev/null >> ${LOGFILE}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1843
	if [ "$?" = "0" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1844
		echo "\n==== DOMESTIC extraction succeeded ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1845
		    >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1846
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1847
		echo "\n==== DOMESTIC extraction failed ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1848
		    >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1849
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1850
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1851
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1852
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1853
if [ "$SE_FLAG" = "y" -o "$SD_FLAG" = "y" -o "$SH_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1854
	# remove proto area here, since we don't clobber
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1855
	rm -rf "$ROOT"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1856
	if [ "$t_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1857
		export INTERNAL_RELEASE_BUILD ; INTERNAL_RELEASE_BUILD=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1858
		export RELEASE_BUILD ; RELEASE_BUILD=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1859
		unset EXTRA_OPTIONS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1860
		unset EXTRA_CFLAGS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1861
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1862
		build_tools ${EXPORT_SRC}/usr/src/tools/proto
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1863
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1864
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1865
	export EXPORT_RELEASE_BUILD ; EXPORT_RELEASE_BUILD=#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1866
	normal_build
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1867
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1868
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1869
if [ "$build_ok" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1870
	echo "\n==== Creating protolist system file at `date` ====" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1871
		>> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1872
	protolist $ROOT > $ATLOG/proto_list_${MACH}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1873
	echo "==== protolist system file created at `date` ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1874
		>> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1875
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1876
	if [ "$N_FLAG" != "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1877
		echo "\n==== Impact on packages ====\n" >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1878
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1879
		# If there is a reference proto list, compare the build's proto
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1880
		# list with the reference to see changes in proto areas.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1881
		# Use the current exception list.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1882
		exc=etc/exception_list_$MACH
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1883
		if [ -f $SRC/pkgdefs/$exc ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1884
			ELIST="-e $SRC/pkgdefs/$exc"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1885
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1886
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1887
		if [ -f "$REF_PROTO_LIST" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1888
			$PROTOCMPTERSE \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1889
			  "Files in yesterday's proto area, but not today's:" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1890
			  "Files in today's proto area, but not yesterday's:" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1891
			  "Files that changed between yesterday and today:" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1892
			  ${ELIST} \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1893
			  -d $REF_PROTO_LIST \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1894
			  $ATLOG/proto_list_${MACH} \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1895
				>> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1896
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1897
		# Compare the build's proto list with current package
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1898
		# definitions to audit the quality of package definitions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1899
		# and makefile install targets. Use the current exception list.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1900
		PKGDEFS_LIST="-d $SRC/pkgdefs"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1901
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1902
		$PROTOCMPTERSE \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1903
		    "Files missing from the proto area:" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1904
		    "Files missing from packages:" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1905
		    "Inconsistencies between pkgdefs and proto area:" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1906
		    ${ELIST} \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1907
		    ${PKGDEFS_LIST} \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1908
		    $ATLOG/proto_list_${MACH} \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1909
		    >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1910
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1911
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1912
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1913
if [ "$u_FLAG" = "y"  -a "$build_ok" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1914
	staffer cp $ATLOG/proto_list_${MACH} \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1915
		$PARENT_WS/usr/src/proto_list_${MACH}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1916
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1917
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1918
# Update parent proto area if necessary. This is done now
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1919
# so that the proto area has either DEBUG or non-DEBUG kernels.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1920
# Note that this clears out the lock file, so we can dispense with
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1921
# the variable now.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1922
if [ "$U_FLAG" = "y" -a "$build_ok" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1923
	echo "\n==== Copying proto area to $NIGHTLY_PARENT_ROOT ====\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1924
	    tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1925
	# The rm -rf command below produces predictable errors if
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1926
	# nightly is invoked from the parent's $ROOT/opt/onbld/bin,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1927
	# and that directory is accessed via NFS.  This is because
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1928
	# deleted-but-still-open files don't actually disappear as
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1929
	# expected, but rather turn into .nfsXXXX junk files, leaving
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1930
	# the directory non-empty.  Since this is a not-unusual usage
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1931
	# pattern, and we still want to catch other errors here, we
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1932
	# take the unusal step of moving aside 'nightly' from that
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1933
	# directory (if we're using it).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1934
	mypath=${0##*/root_$MACH/}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1935
	if [ "$mypath" = $0 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1936
		mypath=opt/onbld/bin/${0##*/}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1937
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1938
	if [ $0 -ef $PARENT_WS/proto/root_$MACH/$mypath ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1939
		mv -f $0 $PARENT_WS/proto/root_$MACH
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1940
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1941
	rm -rf $PARENT_WS/proto/root_$MACH/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1942
	unset Ulockfile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1943
	mkdir -p $NIGHTLY_PARENT_ROOT
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1944
	cd $ROOT
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1945
	( tar cf - . | ( cd $NIGHTLY_PARENT_ROOT;  umask 0; tar xpf - ) ) 2>&1 |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1946
		tee -a $mail_msg_file >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1947
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1948
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1949
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1950
# do shared library interface verification
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1951
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1952
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1953
if [ "$A_FLAG" = "y" -a "$build_ok" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1954
	echo "\n==== Check versioning and ABI information ====\n"  | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1955
	    tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1956
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1957
	rm -rf $SRC/interfaces.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1958
	if [ -d $SRC/interfaces.out ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1959
		mv $SRC/interfaces.out $SRC/interfaces.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1960
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1961
	rm -rf $SRC/interfaces.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1962
	mkdir -p $SRC/interfaces.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1963
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1964
	intf_check -V -m -o -b $SRC/tools/abi/etc \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1965
		-d $SRC/interfaces.out $ROOT 2>&1 | sort \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1966
		> $SRC/interfaces.out/log
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1967
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1968
	# report any ERROR found in log file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1969
	fgrep 'ERROR' $SRC/interfaces.out/log | sed 's/^ERROR: //' | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1970
		tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1971
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1972
	if [ ! -d $SRC/interfaces.ref ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1973
		mkdir -p $SRC/interfaces.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1974
		if [ -d  $SRC/interfaces.out ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1975
			cp -r $SRC/interfaces.out/* $SRC/interfaces.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1976
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1977
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1978
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1979
	echo "\n==== Diff versioning warnings (since last build) ====\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1980
	    tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1981
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1982
	out_vers=`grep ^VERSION $SRC/interfaces.out/log`;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1983
	ref_vers=`grep ^VERSION $SRC/interfaces.ref/log`;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1984
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1985
	# Report any differences in WARNING messages between last
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1986
	# and current build.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1987
	if [ "$out_vers" = "$ref_vers" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1988
		diff $SRC/interfaces.ref/log $SRC/interfaces.out/log | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1989
		    fgrep 'WARNING' | sed 's/WARNING: //' | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1990
		    tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1991
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1992
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1993
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1994
if [ "$r_FLAG" = "y" -a "$build_ok" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1995
	echo "\n==== Check ELF runtime attributes ====\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1996
	    tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1997
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1998
	LDDUSAGE="^ldd: does not support -e"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1999
	LDDWRONG="wrong class"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2000
	CRLERROR="^crle:"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2001
	CRLECONF="^crle: configuration file:"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2002
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2003
	rm -f $SRC/runtime.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2004
	if [ -f $SRC/runtime.out ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2005
		egrep -v "$LDDUSAGE|$LDDWRONG|$CRLERROR|$CRLECONF" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2006
			$SRC/runtime.out > $SRC/runtime.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2007
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2008
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2009
	# If we're doing a debug build the proto area will be left with
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2010
	# debuggable objects, thus don't assert -s.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2011
	if [ "$D_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2012
		rtime_sflag=""
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2013
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2014
		rtime_sflag="-s"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2015
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2016
	check_rtime -d $ROOT -i -m -o $rtime_sflag $ROOT 2>&1 | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2017
	    egrep -v ": unreferenced object=$ROOT/.*/lib(w|intl|thread|pthread).so" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2018
	    egrep -v ": unused object=$ROOT/.*/lib(w|intl|thread|pthread).so" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2019
	    sort >$SRC/runtime.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2020
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2021
	# Determine any processing errors that will affect the final output
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2022
	# and display these first.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2023
	grep -l "$LDDUSAGE" $SRC/runtime.out > /dev/null
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2024
	if [ $? -eq 0 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2025
	    echo "WARNING: ldd(1) does not support -e.  The version of ldd(1)" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2026
		tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2027
	    echo "on your system is old - 4390308 (s81_30) is required.\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2028
		tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2029
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2030
	grep -l "$LDDWRONG" $SRC/runtime.out > /dev/null
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2031
	if [ $? -eq 0 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2032
	    echo "WARNING: wrong class message detected.  ldd(1) was unable" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2033
		tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2034
	    echo "to execute an object, thus it could not be checked fully." | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2035
		tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2036
	    echo "Perhaps a 64-bit object was encountered on a 32-bit system," | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2037
		tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2038
	    echo "or an i386 object was encountered on a sparc system?\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2039
		tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2040
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2041
	grep -l "$CRLECONF" $SRC/runtime.out > /dev/null
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2042
	if [ $? -eq 0 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2043
	    echo "WARNING: creation of an alternative dependency cache failed." | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2044
		tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2045
	    echo "Dependencies will bind to the base system libraries.\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2046
		tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2047
	    grep "$CRLECONF" $SRC/runtime.out | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2048
		tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2049
	    grep "$CRLERROR" $SRC/runtime.out | grep -v "$CRLECONF" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2050
		tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2051
	    echo "\n" | tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2052
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2053
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2054
	egrep '<dependency no longer necessary>' $SRC/runtime.out | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2055
	    tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2056
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2057
	# NEEDED= and RPATH= are informational; report anything else that we
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2058
	# haven't already.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2059
	egrep -v "NEEDED=|RPATH=|$LDDUSAGE|$LDDWRONG|$CRLERROR|$CRLECONF" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2060
	    $SRC/runtime.out | tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2061
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2062
	# probably should compare against a 'known ok runpaths' list
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2063
	if [ ! -f $SRC/runtime.ref ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2064
		egrep -v "$LDDUSAGE|$LDDWRONG|$CRLERROR|$CRLECONF" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2065
			$SRC/runtime.out >  $SRC/runtime.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2066
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2067
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2068
	echo "\n==== Diff ELF runtime attributes (since last build) ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2069
	    >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2070
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2071
	egrep -v "$LDDUSAGE|$LDDWRONG|$CRLERROR|$CRLECONF" $SRC/runtime.out | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2072
	    diff $SRC/runtime.ref - >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2073
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2074
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2075
# For now, don't make archives or packages for GPROF/TRACE builds
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2076
a_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2077
p_FLAG=n
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2078
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2079
# GPROF build begins
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2080
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2081
if [ "$i_CMD_LINE_FLAG" = "n" -a "$P_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2082
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2083
	export INTERNAL_RELEASE_BUILD ; INTERNAL_RELEASE_BUILD=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2084
	export RELEASE_BUILD ; RELEASE_BUILD=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2085
	export EXTRA_OPTIONS ; EXTRA_OPTIONS="-DGPROF"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2086
	export EXTRA_CFLAGS ; EXTRA_CFLAGS="-xpg"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2087
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2088
	build GPROF -prof
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2089
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2090
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2091
	echo "\n==== No GPROF build ====\n" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2092
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2093
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2094
# GPROF build ends
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2095
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2096
# TRACE build begins
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2097
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2098
if [ "$i_CMD_LINE_FLAG" = "n" -a "$T_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2099
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2100
	export INTERNAL_RELEASE_BUILD ; INTERNAL_RELEASE_BUILD=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2101
	export RELEASE_BUILD ; RELEASE_BUILD=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2102
	export EXTRA_OPTIONS ; EXTRA_OPTIONS="-DTRACE"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2103
	unset EXTRA_CFLAGS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2104
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2105
	build TRACE -trace
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2106
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2107
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2108
	echo "\n==== No TRACE build ====\n" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2109
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2110
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2111
# TRACE build ends
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2112
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2113
# DEBUG lint of kernel begins
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2114
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2115
if [ "$i_CMD_LINE_FLAG" = "n" -a "$l_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2116
	if [ "$LINTDIRS" = "" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2117
		# LINTDIRS="$SRC/uts y $SRC/stand y $SRC/psm y"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2118
		LINTDIRS="$SRC y"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2119
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2120
	set $LINTDIRS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2121
	while [ $# -gt 0 ]; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2122
		dolint $1 $2; shift; shift
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2123
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2124
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2125
	echo "\n==== No '$MAKE lint' ====\n" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2126
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2127
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2128
# "make check" begins
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2129
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2130
if [ "$i_CMD_LINE_FLAG" = "n" -a "$C_FLAG" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2131
	# remove old check.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2132
	rm -f $SRC/check.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2133
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2134
	rm -f $SRC/check-${MACH}.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2135
	cd $SRC
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2136
	$MAKE -ek check 2>&1 | tee -a $SRC/check-${MACH}.out >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2137
	echo "\n==== cstyle/hdrchk errors ====\n" >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2138
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2139
	grep ":" $SRC/check-${MACH}.out |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2140
		egrep -v "Ignoring unknown host" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2141
		sort | uniq >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2142
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2143
	echo "\n==== No '$MAKE check' ====\n" >> $LOGFILE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2144
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2145
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2146
echo "\n==== Find core files ====\n" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2147
    tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2148
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2149
find $SRC -name core -a -type f -exec file {} \; | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2150
	tee -a $LOGFILE >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2151
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2152
if [ "$f_FLAG" = "y" -a "$build_ok" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2153
	echo "\n==== Diff unreferenced files (since last build) ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2154
	    | tee -a $LOGFILE >>$mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2155
	rm -f $SRC/unref-${MACH}.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2156
	if [ -f $SRC/unref-${MACH}.out ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2157
		mv $SRC/unref-${MACH}.out $SRC/unref-${MACH}.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2158
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2159
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2160
	findunref $SRC ${TOOLS}/findunref/exception_list \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2161
	    2>> $mail_msg_file | sort > $SRC/unref-${MACH}.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2162
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2163
	if [ ! -f $SRC/unref-${MACH}.ref ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2164
		cp $SRC/unref-${MACH}.out $SRC/unref-${MACH}.ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2165
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2166
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2167
	diff $SRC/unref-${MACH}.ref $SRC/unref-${MACH}.out >>$mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2168
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2169
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2170
# Verify that the usual lists of files, such as exception lists,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2171
# contain only valid references to files.  If the build has failed,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2172
# then don't check the proto area.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2173
CHECK_PATHS=${CHECK_PATHS:-y}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2174
if [ "$CHECK_PATHS" = y -a "$N_FLAG" != y ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2175
	echo "\n==== Check lists of files ====\n" | tee -a $LOGFILE \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2176
		>>$mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2177
	arg=-b
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2178
	[ "$build_ok" = y ] && arg=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2179
	checkpaths $arg $ROOT 2>&1 | tee -a $LOGFILE >>$mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2180
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2181
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2182
if [ "$M_FLAG" != "y" -a "$build_ok" = y ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2183
	echo "\n==== Impact on file permissions ====\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2184
		>> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2185
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2186
	# Get pkginfo files from usr/src/pkgdefs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2187
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2188
	pmodes -qvdP \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2189
	`for d in $SRC/pkgdefs; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2190
		if [ -d "$d" ]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2191
		then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2192
			find $d -name pkginfo.tmpl -print -o -name .del\* -prune
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2193
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2194
	 done | sed -e 's:/pkginfo.tmpl$::' | sort -u ` >> $mail_msg_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2195
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2196
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2197
END_DATE=`date`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2198
echo "==== Nightly $maketype build completed: $END_DATE ====" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2199
    tee -a $LOGFILE >> $build_time_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2200
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2201
typeset -Z2 minutes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2202
typeset -Z2 seconds
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2203
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2204
elapsed_time=$SECONDS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2205
((hours = elapsed_time / 3600 ))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2206
((minutes = elapsed_time / 60  % 60))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2207
((seconds = elapsed_time % 60))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2208
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2209
echo "\n==== Total build time ====" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2210
    tee -a $LOGFILE >> $build_time_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2211
echo "\nreal    ${hours}:${minutes}:${seconds}" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2212
    tee -a $LOGFILE >> $build_time_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2213
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2214
if [ "$u_FLAG" = "y" -a "$f_FLAG" = "y" -a "$build_ok" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2215
	staffer cp ${SRC}/unref-${MACH}.out $PARENT_WS/usr/src/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2216
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2217
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2218
	# Produce a master list of unreferenced files -- ideally, we'd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2219
	# generate the master just once after all of the nightlies
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2220
	# have finished, but there's no simple way to know when that
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2221
	# will be.  Instead, we assume that we're the last nightly to
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2222
	# finish and merge all of the unref-${MACH}.out files in
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2223
	# $PARENT_WS/usr/src/.  If we are in fact the final ${MACH} to
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2224
	# finish, then this file will be the authoritative master
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2225
	# list.  Otherwise, another ${MACH}'s nightly will eventually
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2226
	# overwrite ours with its own master, but in the meantime our
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2227
	# temporary "master" will be no worse than any older master
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2228
	# which was already on the parent.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2229
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2230
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2231
	set -- $PARENT_WS/usr/src/unref-*.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2232
	cp "$1" ${TMPDIR}/unref.merge
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2233
	shift
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2234
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2235
	for unreffile; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2236
		comm -12 ${TMPDIR}/unref.merge "$unreffile" > ${TMPDIR}/unref.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2237
		mv ${TMPDIR}/unref.$$ ${TMPDIR}/unref.merge
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2238
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2239
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2240
	staffer cp ${TMPDIR}/unref.merge $PARENT_WS/usr/src/unrefmaster.out
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2241
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2242
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2243
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2244
# All done save for the sweeping up.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2245
# (whichever exit we hit here will trigger the "cleanup" trap which 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2246
# optionally sends mail on completion).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2247
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2248
if [ "$build_ok" = "y" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2249
	exit 0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2250
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2251
exit 1