pkgsrc/devel/bmake/files/boot-strap
reed 0b1a0779b2 Update to version 20051105.
Remove GNU_CONFIGURE=no from pkgsrc Makefile.

Add "--mksrc none" to arguments and
add --prefix=${PREFIX} and --sysconfdir=${PKG_SYSCONFDIR}
and remove ${CONFIGURE_ARGS} for boot-strap.

Note that I didn't import the files that only change was a
CVS $Id$ tag.

From ChangeLog:

2005-11-05  Simon J. Gerraty  <sjg@void.crufty.net>

	* Makefile.in (BMAKE_VERSION): bump to 20051105
	* configure.in: always set default_sys_path
	  default is ${prefix}/share/mk
	  - remove prefix_sys_path, anyone wanting more than above
	    needs to set it manually.

2005-11-04  Simon J. Gerraty  <sjg@void.crufty.net>

	* boot-strap: make this a bit easier for pkgsrc folk.
	  bootstrap still fails on IRIX64 since MACHINE_ARCH gets set to
	  'mips' while pkgsrc wants 'mipseb' or 'mipsel'

2005-11-02  Simon J. Gerraty  <sjg@void.crufty.net>

	* Makefile.in (BMAKE_VERSION): bump to 20051102
	* job.c (JobFinish): fix likely ancient merge lossage
	fix from Todd Vierling.
	* boot-strap (srcdir): allow setting mksrc=none

2005-10-31  Simon J. Gerraty  <sjg@void.crufty.net>

	* Makefile.in (BMAKE_VERSION): bump to 20051031
	* ranlib.h: skip on OSF too.
	  (NetBSD PR 31864)
2005-11-10 00:09:34 +00:00

183 lines
4.2 KiB
Text
Executable file

:
# NAME:
# boot-strap
#
# SYNOPSIS:
# boot-strap [--"configure_arg" ... ][-s "srcdir"][-m "mksrc"]\\
# ["prefix" ["bmakesrc" ["mksrc"]]]
#
# DESCRIPTION:
# This script is used to configure/build bmake it builds for
# each OS in a subdir to keep the src clean.
# On successful completion it echos commands to put the new
# bmake binary into the /configs tree (if it exists)
# (http://www.crufty.net/FreeWare/configs.html), $prefix/bin
# and a suitable ~/*bin directory.
#
# Possibly useful configure_args:
#
# --with-machine="machine"
# set "machine" to override that determined by
# machine.sh
#
# --with-force-machine="machine"
# force "machine" even if uname(3) provides a value.
#
# --with-machine_arch="machine_arch"
# set "machine_arch" to override that determined by
# machine.sh
#
# --with-default-sys-path="syspath"
# set an explicit default "syspath" which is where bmake
# will look for sys.mk and friends.
#
# --with-prefix-sys-path="syspath"
# prefix the built in default syspath with "syspath"
#
# AUTHOR:
# Simon J. Gerraty <sjg@crufty.net>
# RCSid:
# $Id: boot-strap,v 1.2 2005/11/10 00:09:34 reed Exp $
#
# @(#) Copyright (c) 2001 Simon J. Gerraty
#
# This file is provided in the hope that it will
# be of use. There is absolutely NO WARRANTY.
# Permission to copy, redistribute or otherwise
# use this file is hereby granted provided that
# the above copyright notice and this notice are
# left intact.
#
# Please send copies of changes and bug-fixes to:
# sjg@crufty.net
#
Mydir=`dirname $0`
. $Mydir/os.sh
case $Mydir in
/*) ;;
*) Mydir=`cd $Mydir; /bin/pwd`;;
esac
Usage() {
[ "$1" ] && echo "ERROR: $@" >&2
echo "Usage:" >&2
echo "$0 [--<configure_arg> ...][-s <srcdir>][-m <mksrc>][<prefix> [[<srcdir>] [<mksrc>]]]" >&2
exit 1
}
Error() {
echo "ERROR: $@" >&2
exit 1
}
CONFIGURE_ARGS=
prefix=
srcdir=
mksrc=
objdir=
quiet=:
while :
do
case "$1" in
--) shift; break;;
--prefix) prefix=$2; shift 2;;
--prefix=*) prefix=`IFS="="; set -- $1; echo $2`; shift;;
--src=*) srcdir=`IFS="="; set -- $1; echo $2`; shift;;
--with-mksrc=*) mksrc=`IFS="="; set -- $1; echo $2`; shift;;
-s|--src) srcdir=$2; shift 2;;
-m|--mksrc) mksrc=$2; shift 2;;
-o|--objdir) objdir=$2; shift 2;;
-q) quiet=; shift;;
--*) CONFIGURE_ARGS="$CONFIGURE_ARGS $1"; shift;;
*=*) eval "$1"; export `IFS="="; set -- $1; echo $1`; shift;;
*) break;;
esac
done
AddConfigure() {
case " $CONFIGURE_ARGS " in
*" $1"*) ;;
*) CONFIGURE_ARGS="$CONFIGURE_ARGS $1$2";;
esac
}
GetDir() {
match=$1
shift
for dir in $*
do
[ -d $dir ] || continue
case "/$dir/" in
*$match*) ;;
*) continue;;
esac
case "$dir/" in
*./*) cd $dir && /bin/pwd;;
/*) echo $dir;;
*) cd $dir && /bin/pwd;;
esac
break
done
}
srcdir=`GetDir /bmake $srcdir $2 $Mydir ./bmake* $Mydir/../bmake*`
[ -d ${srcdir:-/dev/null} ] || Usage
case "$mksrc" in
none|-) # we don't want it
mksrc=
;;
*) # guess we want mksrc...
mksrc=`GetDir /mk $mksrc $3 ./mk* $srcdir/mk* $srcdir/../mk*`
[ -d ${mksrc:-/dev/null} ] || Usage
;;
esac
# Ok, get to work...
objdir=${objdir:-$OS}
[ -d $objdir ] || mkdir -p $objdir
[ -d $objdir ] || mkdir $objdir
cd $objdir || exit 1
AddConfigure --prefix= $prefix
case "$CONFIGURE_ARGS" in
*--with-prefix-sys-path*) ;; # skip
*) AddConfigure --with-default-sys-path= $prefix/share/mk;;
esac
[ "$mksrc" ] && AddConfigure --with-mksrc= $mksrc
$srcdir/configure $CONFIGURE_ARGS || exit 1
${MAKE:-make} -f makefile.boot clean
${MAKE:-make} -f makefile.boot bootstrap || exit 1
# If -q given, we don't want all the install instructions
$quiet exit 0
make_version=`./bmake -m ./mk -m /usr/share/mk -f ./Makefile -V MAKE_VERSION | ( read one two; echo $one )`
install_prefix() {
bdir=$1/bin
echo
echo Commands to install into $1/
echo
echo mkdir -p $bdir
echo cp $objdir/bmake $bdir/$make_version
echo rm -f $bdir/bmake
echo ln -s $make_version $bdir/bmake
[ "$mksrc" ] && echo $mksrc/install-mk $1/share/mk
}
case $prefix/ in
$HOME/*) ;;
*) CONFIGS=${CONFIGS:-/configs}
[ -d $CONFIGS ] &&
install_prefix $CONFIGS/$OS/$OSMAJOR.X/$MACHINE_ARCH$prefix
# I like to keep a copy here...
install_prefix $HOME/$HOST_TARGET
;;
esac
install_prefix $prefix