summaryrefslogtreecommitdiff
path: root/bootstrap
diff options
context:
space:
mode:
Diffstat (limited to 'bootstrap')
-rwxr-xr-xbootstrap/bootstrap56
-rwxr-xr-xbootstrap/mkbinarykit224
2 files changed, 55 insertions, 225 deletions
diff --git a/bootstrap/bootstrap b/bootstrap/bootstrap
index 04e3c77e63a..3aa4eddc231 100755
--- a/bootstrap/bootstrap
+++ b/bootstrap/bootstrap
@@ -1,6 +1,6 @@
#! /bin/sh
-# $NetBSD: bootstrap,v 1.117 2008/01/20 19:55:29 rillig Exp $
+# $NetBSD: bootstrap,v 1.118 2008/01/23 21:12:41 joerg Exp $
#
#
# Copyright (c) 2001-2002 Alistair G. Crooks. All rights reserved.
@@ -71,6 +71,9 @@ usage="Usage: $0 "'
[ --preserve-path ]
[ --compiler <compiler> ]
[ --mk-fragment <mk.conf> ]
+ [ --binary-kit <tarball> ]
+ [ --gzip-binary-kit <tarball> ]
+ [ --binary-macpkg <pkg> ]
[ --full ]
[ --quiet ]
[ --help ]'
@@ -82,6 +85,42 @@ usage="Usage: $0 "'
# strip / for BSD/OS, strip - for HP-UX
opsys=`uname -s | tr -d /-`
+mkbinarykit_macpkg()
+{
+ local macdestdir
+ macdestdir=${wrkdir}/macpkg-destdir
+ rm -rf ${macdestdir} || die "cleanup destdir"
+
+ mkdir -p ${macdestdir}${prefix} || die "mkdir destprefix"
+ rmdir ${macdestdir}${prefix} || die "rmdir destprefix"
+ cp -Rp ${prefix} ${macdestdir}${prefix} || die "copy prefix"
+
+ if [ ! -d ${macdestdir}${pkgdbdir} ]; then
+ mkdir -p ${macdestdir}${pkgdbdir} || die "mkdir destdbdir"
+ rmdir ${macdestdir}${pkgdbdir} || die "rmdir destdbdir"
+ cp -Rp ${pkgdbdir} ${macdestdir}${pkgdbdir} || die "copy dbdir"
+ fi
+
+ ${sedprog} -e "s|%WRKDIR%|${wrkdir}|g" \
+ -e "s|%TARGETDIR%|${targetdir}|g" -e "s|%DATE%|${date}|g" \
+ < macpkg.pmproj.in > ${wrkdir}/macpkg.pmproj
+ ${packagemaker} -build -proj ${wrkdir}/macpkg.pmproj -p "${binary_macpkg}"
+}
+
+mkbinarykit_tar()
+{
+ # in case tar was built by bootstrap
+ PATH="$prefix/bin:$PATH"; export PATH
+ cd / && tar -hcf "${binary_kit}" .$prefix .$pkgdbdir .$etc_mk_conf
+}
+
+mkbinarykit_tgz()
+{
+ # in case tar was built by bootstrap
+ PATH="$prefix/bin:$PATH"; export PATH
+ cd / && tar -hzcf "${binary_gzip_kit}" .$prefix .$pkgdbdir .$etc_mk_conf
+}
+
die()
{
echo >&2 "$@"
@@ -337,6 +376,17 @@ while [ $# -gt 0 ]; do
mk_fragment=`get_optarg "$1"` ;;
--mk-fragment)
mk_fragment="$2"; shift ;;
+
+ --binary-kit=*)
+ binary_kit=`get_optarg "$1"` ;;
+ --binary-kit)
+ binary_kit="$2"; shift ;;
+ --gzip-binary-kit=*)
+ binary_gzip_kit=`get_optarg "$1"` ;;
+ --gzip-binary-kit)
+ binary_gzip_kit="$2"; shift ;;
+ --binary-macpkg)
+ binary_macpkg=`get_optarg "$1"` ;;
--full) full=yes ;;
--quiet) quiet=yes ;;
--help) echo "$usage"; exit ;;
@@ -1016,6 +1066,10 @@ echo ""
echo "$hline"
echo ""
+[ ! -z "${binary_kit}" ] && mkbinarykit_tar
+[ ! -z "${binary_gzip_kit}" ] && mkbinarykit_tgz
+[ ! -z "${binary_macpkg}" ] && mkbinarykit_macpkg
+
echo_msg "bootstrap started: $build_start"
echo_msg "bootstrap ended: `date`"
diff --git a/bootstrap/mkbinarykit b/bootstrap/mkbinarykit
deleted file mode 100755
index d5626e6afba..00000000000
--- a/bootstrap/mkbinarykit
+++ /dev/null
@@ -1,224 +0,0 @@
-#!/bin/sh
-
-# $NetBSD: mkbinarykit,v 1.27 2007/11/03 17:51:08 minskim Exp $
-#
-# Make a binary bootstrap kit and place it in targetdir (or current
-# working directory if not specified). The mk.conf.example file is
-# copied to ${PREFIX}/etc/mk.conf or to the location specified
-# by using --mkconf. Run this program from the pkgsrc/bootstrap
-# directory.
-
-mkbinarykit_macpkg()
-{
- local macdestdir
- macdestdir=${wrkdir}/macpkg-destdir
- rm -rf ${macdestdir} || die "cleanup destdir"
-
- mkdir -p ${macdestdir}${prefix} || die "mkdir destprefix"
- rmdir ${macdestdir}${prefix} || die "rmdir destprefix"
- cp -Rp ${prefix} ${macdestdir}${prefix} || die "copy prefix"
-
- if [ ! -d ${macdestdir}${pkgdbdir} ]; then
- mkdir -p ${macdestdir}${pkgdbdir} || die "mkdir destdbdir"
- rmdir ${macdestdir}${pkgdbdir} || die "rmdir destdbdir"
- cp -Rp ${pkgdbdir} ${macdestdir}${pkgdbdir} || die "copy dbdir"
- fi
-
- ${sedprog} -e "s|%WRKDIR%|${wrkdir}|g" \
- -e "s|%TARGETDIR%|${targetdir}|g" -e "s|%DATE%|${date}|g" \
- < macpkg.pmproj.in > ${wrkdir}/macpkg.pmproj
- ${packagemaker} -build -proj ${wrkdir}/macpkg.pmproj -p "$targetdir/bootstrap-pkgsrc-$opsys-$osrev-$ospro-$date.pkg"
- ls -dl "$targetdir/bootstrap-pkgsrc-$opsys-$osrev-$ospro-$date.pkg"
-}
-
-mkbinarykit_tar()
-{
- # in case tar was built by bootstrap
- PATH="$prefix/bin:$PATH"; export PATH
- [ ! -d $sysconfdir ] && mkdir -p $sysconfdir
- cp ${wrkdir}/mk.conf.example $mkfile && \
- cd / && \
- tar -hcf "$targetdir/bootstrap-pkgsrc-$opsys-$osrev-$ospro-$date.tar" \
- .$prefix .$pkgdbdir .$mkfile && \
- ls -l "$targetdir/bootstrap-pkgsrc-$opsys-$osrev-$ospro-$date.tar"
-}
-
-die()
-{
- echo "error: can't $@" >&2
- exit 1
-}
-
-usage="Usage: $0 "'
- [ --force ] [ --targetdir=<tar target dir> ] [ --mkconf=<target> ]
- [ --no-build ] [ --workdir=<work dir> ] [ bootstrap script arguments ]
- [ --fetch-cmd=<ftp command> ] [ --mk-fragment=<mk.conf> ]'
-
-opsys=`uname -s | tr -d /-`
-osrev=`uname -r`
-ospro=`uname -p`
-date=`date +%Y%m%d`
-
-prefix=/usr/pkg
-sysconfdir=$prefix/etc
-pkgdbdir=/var/db/pkg
-compiler=
-mkfile=
-mk_fragment=
-ignorecasecheck=no
-ignoreusercheck=no
-force=no
-build=yes
-fetch_cmd=""
-targetdir=`pwd`
-wrkdir=`pwd`/work # default: relative to pkgsrc/bootstrap
-
-sedprog="sed"
-
-case "$opsys" in
-AIX)
- pkgdbdir=$prefix/pkgdb
- ;;
-Darwin)
- macosx_version=`echo $osrev | awk -F . '{ print "10."$1-4; }'`
- case "$macosx_version" in
- 10.[0-4])
- universal_sdk="/Developer/SDKs/MacOSX${macosx_version}u.sdk"
- packagemaker=/Developer/Tools/packagemaker
- ;;
- *)
- universal_sdk="/Developer/SDKs/MacOSX${macosx_version}.sdk"
- packagemaker=/Developer/usr/bin/packagemaker
- ;;
- esac
- if [ -d "${universal_sdk}" ]; then
- echo "===> Building Universal binaries."
- ospro=universal
- export CFLAGS="-arch i386 -arch ppc -arch ppc64 -arch x86_64 -isysroot ${universal_sdk}"
- export LDFLAGS="-arch i386 -arch ppc -arch ppc64 -arch x86_64 -Wl,-syslibroot,${universal_sdk}"
- else
- echo "===> Building non-Universal binaries."
- fi
- unset macosx_version universal_sdk
- ;;
-DragonFly)
- case "$osrev" in
- 1.1[0-9]*)
- ;;
- 1.0* | 1.1 | 1.2.* | 1.3.*)
- # Don't use the ports /var/db/pkg
- pkgdbdir=$prefix/pkgdb
- ;;
- esac
- ;;
-FreeBSD)
- # Don't use the ports /var/db/pkg
- pkgdbdir=$prefix/pkgdb
- ;;
-Interix)
- # Don't use the interopsystems.com package dir
- pkgdbdir=$prefix/pkgdb
- ospro=i386
- ;;
-HPUX)
- ospro=`uname -m | sed 's/^9000.*$/hppa/'`
- ;;
-NetBSD)
- ;;
-OpenBSD)
- # Don't use the ports /var/db/pkg
- pkgdbdir=$prefix/pkgdb
- # Use "arch -s" instead of uname -p
- ospro=`arch -s`
- ;;
-SunOS)
- sedprog=/usr/xpg4/bin/sed
- ;;
-esac
-
-while [ $# -gt 0 ]; do
- case $1 in
- --force) force=yes ;;
- --no-build) build=no ;;
- --targetdir=*) targetdir=`echo $1 | $sedprog -e 's|--targetdir=||'` ;;
- --prefix=*) prefix=`echo $1 | $sedprog -e 's|--prefix=||'` ;;
- --fetch-cmd=*) fetch_cmd="$1" ;;
- --mkconf=*) mkfile=`echo $1 | $sedprog -e 's|--mkconf=||'` ;;
- --mk-fragment=*)
- mk_fragment="$1" ;;
- --compiler=*) compiler="$1" ;;
- --pkgdbdir=*) pkgdbdir=`echo $1 | $sedprog -e 's|--pkgdbdir=||'` ;;
- --ignore-case-check) ignorecasecheck=yes ;;
- --ignore-user-check) ignoreusercheck=yes ;;
- --workdir=*) wrkdir=`echo $1 | $sedprog -e 's|--workdir=||'` ;;
- --*) echo "$usage"; exit 1 ;;
- esac
- shift
-done
-
-[ -z "${mkfile}" ] && mkfile="$prefix/etc/mk.conf"
-
-if [ "$build" = "yes" ] && [ "$force" != "yes" ]; then
- if [ -d "$prefix" ] || [ -d "$pkgdbdir" ]; then
- echo "Some pkgsrc infrastructure exists on this system already."
- echo "Use --force to move it out of the way."
- exit 1
- fi
-elif [ "$build" = "yes" ]; then
- mv -f "$prefix" "$prefix.$$"
- mv -f "$pkgdbdir" "$pkgdbdir.$$"
- mv -f "$mkfile" "$mkfile.$$"
-fi
-
-if [ "$build" != "no" ]; then
-
- # Bootstrap
- bootstrap_flags="--prefix=$prefix --pkgdbdir=$pkgdbdir --workdir=$wrkdir $fetch_cmd"
- if [ "$ignorecasecheck" = "yes" ]; then
- bootstrap_flags="$bootstrap_flags --ignore-case-check"
- fi
- if [ -n "${mk_fragment}" ]; then
- bootstrap_flags="$bootstrap_flags ${mk_fragment}"
- fi
- if [ -n "${compiler}" ]; then
- bootstrap_flags="$bootstrap_flags ${compiler}"
- fi
-
- if [ "$ignoreusercheck" = "yes" ]; then
- bootstrap_flags="$bootstrap_flags --ignore-user-check"
- fi
-
- echo "Making bootstrap kit with"
- echo "prefix = $prefix"
- echo "pkgdbdir = $pkgdbdir"
- echo "mk.conf.example will be copied to $mkfile"
- echo ""
-
- ./cleanup $wrkdir
- ./bootstrap $bootstrap_flags
- if [ $? != "0" ]; then
- echo "Bootstrap error."
- exit 1;
- fi
-fi
-
-# Make a tar ball
-
-strip=strip
-if [ -x /usr/ccs/bin/strip ]; then
- strip=/usr/ccs/bin/strip
-fi
-
-echo "Stripping binaries..."
-$strip "$prefix/"bin/*
-$strip "$prefix/"sbin/*
-
-echo "Making binary kit."
-case "$opsys" in
-Darwin)
- mkbinarykit_macpkg
- ;;
-*)
- mkbinarykit_tar
- ;;
-esac