version 1.316, 2017/04/08 18:22:35 |
version 1.316.4.3, 2021/09/15 05:07:42 |
Line 1052 Usage: ${progname} [-EhnoPRrUuxy] [-a ar |
|
Line 1052 Usage: ${progname} [-EhnoPRrUuxy] [-a ar |
|
list-arch Display a list of valid MACHINE/MACHINE_ARCH values, |
list-arch Display a list of valid MACHINE/MACHINE_ARCH values, |
and exit. The list may be narrowed by passing glob |
and exit. The list may be narrowed by passing glob |
patterns or exact values in MACHINE or MACHINE_ARCH. |
patterns or exact values in MACHINE or MACHINE_ARCH. |
|
mkrepro-timestamp Show the latest source timestamp used for reproducable |
|
builds and exit. Requires -P or -V MKREPRO=yes. |
|
|
Options: |
Options: |
-a arch Set MACHINE_ARCH to arch. [Default: deduced from MACHINE] |
-a arch Set MACHINE_ARCH to arch. [Default: deduced from MACHINE] |
|
|
|
|
list-arch) |
list-arch) |
listarch "${MACHINE}" "${MACHINE_ARCH}" |
listarch "${MACHINE}" "${MACHINE_ARCH}" |
exit $? |
exit |
|
;; |
|
mkrepro-timestamp) |
|
setup_mkrepro quiet |
|
echo ${MKREPRO_TIMESTAMP:-0} |
|
[ ${MKREPRO_TIMESTAMP:-0} -ne 0 ]; exit |
;; |
;; |
|
|
kernel=*|releasekernel=*|kernel.gdb=*) |
kernel=*|releasekernel=*|kernel.gdb=*) |
|
|
fi |
fi |
;; |
;; |
esac |
esac |
|
|
|
while [ ${MKX11-no} = "yes" ]; do # not really a loop |
|
test -n "${X11SRCDIR}" && { |
|
test -d "${X11SRCDIR}" || |
|
bomb "X11SRCDIR (${X11SRCDIR}) does not exist (with -x)" |
|
break |
|
} |
|
for _xd in \ |
|
"${NETBSDSRCDIR%/*}/xsrc" \ |
|
"${NETBSDSRCDIR}/xsrc" \ |
|
/usr/xsrc |
|
do |
|
test -d "${_xd}" && |
|
setmakeenv X11SRCDIR "${_xd}" && |
|
break 2 |
|
done |
|
bomb "Asked to build X11 but no xsrc" |
|
done |
} |
} |
|
|
# print_tooldir_make -- |
# print_tooldir_make -- |
# Try to find and print a path to an existing |
# Try to find and print a path to an existing |
# ${TOOLDIR}/bin/${toolprefix}program |
# ${TOOLDIR}/bin/${toolprefix}program |
|
|
|
|
statusmsg "Bootstrapping ${toolprefix}make" |
statusmsg "Bootstrapping ${toolprefix}make" |
${runcmd} cd "${tmpdir}" |
${runcmd} cd "${tmpdir}" |
${runcmd} env \ |
${runcmd} env CC="${HOST_CC-cc}" CPPFLAGS="${HOST_CPPFLAGS}" \ |
\ |
CFLAGS="${HOST_CFLAGS--O}" LDFLAGS="${HOST_LDFLAGS}" \ |
CC="${HOST_CC-cc}" \ |
|
CPPFLAGS="${HOST_CPPFLAGS} -D_PATH_DEFSYSPATH="'\"'${NETBSDSRCDIR}/share/mk'\"' \ |
|
CFLAGS="${HOST_CFLAGS--O}" \ |
|
LDFLAGS="${HOST_LDFLAGS}" \ |
|
\ |
|
${HOST_SH} "${TOP}/tools/make/configure" || |
${HOST_SH} "${TOP}/tools/make/configure" || |
( cp ${tmpdir}/config.log ${tmpdir}-config.log |
( cp ${tmpdir}/config.log ${tmpdir}-config.log |
bomb "Configure of ${toolprefix}make failed, see ${tmpdir}-config.log for details" ) |
bomb "Configure of ${toolprefix}make failed, see ${tmpdir}-config.log for details" ) |
|
|
statusmsg "Rump build&link tests successful" |
statusmsg "Rump build&link tests successful" |
} |
} |
|
|
|
repro_date() { |
|
# try the bsd date fail back the the linux one |
|
date -u -r "$1" 2> /dev/null || date -u -d "@$1" |
|
} |
|
|
setup_mkrepro() |
setup_mkrepro() |
{ |
{ |
|
local quiet="$1" |
|
|
if [ ${MKREPRO-no} != "yes" ]; then |
if [ ${MKREPRO-no} != "yes" ]; then |
return |
return |
fi |
fi |
|
if [ ${MKREPRO_TIMESTAMP-0} -ne 0 ]; then |
|
return; |
|
fi |
|
|
local dirs=${NETBSDSRCDIR-/usr/src}/ |
local dirs=${NETBSDSRCDIR-/usr/src}/ |
if [ ${MKX11-no} = "yes" ]; then |
if [ ${MKX11-no} = "yes" ]; then |
dirs="$dirs ${X11SRCDIR-/usr/xsrc}/" |
dirs="$dirs ${X11SRCDIR-/usr/xsrc}/" |
fi |
fi |
|
|
local cvslatest=$(print_tooldir_program cvslatest) |
local cvslatest=$(print_tooldir_program cvslatest) |
if [ ! -x "${cvslatest}" ]; then |
if [ ! -x "${cvslatest}" ]; then |
buildtools |
buildtools |
fi |
fi |
MKREPRO_TIMESTAMP=$("${cvslatest}" ${dirs}) |
|
[ -n "${MKREPRO_TIMESTAMP}" ] || bomb "Failed to compute timestamp" |
local cvslatestflags= |
statusmsg2 "MKREPRO_TIMESTAMP" "$(TZ=UTC date -r ${MKREPRO_TIMESTAMP})" |
if ${do_expertmode}; then |
|
cvslatestflags=-i |
|
fi |
|
|
|
MKREPRO_TIMESTAMP=0 |
|
local d |
|
local t |
|
local vcs |
|
for d in ${dirs}; do |
|
if [ -d "${d}CVS" ]; then |
|
t=$("${cvslatest}" ${cvslatestflags} "${d}") |
|
vcs=cvs |
|
elif [ -d "${d}.git" ]; then |
|
t=$(cd "${d}" && git log -1 --format=%ct) |
|
vcs=git |
|
elif [ -d "${d}.hg" ]; then |
|
t=$(cd "${d}" && |
|
hg log -r . --template '{date(date, "%s")}\n') |
|
vcs=hg |
|
else |
|
bomb "Cannot determine VCS for '$d'" |
|
fi |
|
|
|
if [ -z "$t" ]; then |
|
bomb "Failed to get timestamp for vcs=$vcs in '$d'" |
|
fi |
|
|
|
#echo "latest $d $vcs $t" |
|
if [ "$t" -gt "$MKREPRO_TIMESTAMP" ]; then |
|
MKREPRO_TIMESTAMP="$t" |
|
fi |
|
done |
|
|
|
[ "${MKREPRO_TIMESTAMP}" != "0" ] || bomb "Failed to compute timestamp" |
|
if [ -z "${quiet}" ]; then |
|
statusmsg2 "MKREPRO_TIMESTAMP" \ |
|
"$(repro_date "${MKREPRO_TIMESTAMP}")" |
|
fi |
export MKREPRO MKREPRO_TIMESTAMP |
export MKREPRO MKREPRO_TIMESTAMP |
} |
} |
|
|