On Thu, Jun 20, 2024 at 03:00:52PM -0700, ron minnich wrote:
You're right. It's not that autoconf never
works, it's that it fails so
frequently that I can't trust it to work. Case in point, I just had a bunch
of trouble this morning with it, with the most trivial command, and had to
reset the repo to ground state to get it to build again.
but compared to my experience with Go, autoconf does not compare well.
This is BitKeeper's build shell. Not a lot to it.
#!/bin/sh
orig_args="$@"
ms_env()
{
unset JOBS
test "$MSYSBUILDENV" || {
echo running in wrong environment, respawning...
rm -f conf*.mk
bk get -S ./update_buildenv
BK_USEMSYS=1 bk sh ./update_buildenv
export HOME=`bk pwd`
test -d R:/build/buildenv/bin &&
exec R:/build/buildenv/bin/sh --login $0 $orig_args
exec C:/build/buildenv/bin/sh --login $0 $orig_args
}
gcc --version | grep -q cyg && {
echo No Mingw GCC found, I quit.
exit 1
}
}
JOBS=-j4
while getopts j: opt
do
case "$opt" in
j) JOBS=-j$OPTARG;;
esac
done
shift `expr $OPTIND - 1`
# ccache stuff
CCLINKS=/build/cclinks
CCACHEBIN=`which ccache 2>/dev/null`
if [ $? = 0 -a "X$BK_NO_CCACHE" = X ]
then
test -d $CCLINKS || {
mkdir -p $CCLINKS
ln -s "$CCACHEBIN" $CCLINKS/cc
ln -s "$CCACHEBIN" $CCLINKS/gcc
}
CCACHE_DIR=/build/.ccache
# Seems like a good idea but if cache and
# source are on different filesystems, setting
# CCACHE_HARDLINK seems to have the same
# effect as disabling the cache altogether
#CCACHE_HARDLINK=1
CCACHE_UMASK=002
export CCACHE_DIR CCACHE_HARDLINK CCACHE_UMASK
export PATH=$CCLINKS:$PATH
else
CCACHE_DISABLE=1
export CCACHE_DISABLE
fi
case "X`uname -s`" in
XCYGWIN*|XMINGW*)
ms_env;
;;
esac
test "$MAKE" || MAKE=`which gmake 2>/dev/null`
test "$MAKE" || MAKE=make
test "x$BK_VERBOSE_BUILD" != "x" && { V="V=1"; }
"$MAKE" --no-print-directory $JOBS $V "$@"