3 # $NetBSD: mkbinarykit,v 1.11 2005/01/16 03:02:02 grant Exp $
5 # Make a binary bootstrap kit and place it in targetdir (or current
6 # working directory if not specified). The mk.conf.example file is
7 # copied to /etc/mk.conf (or /etc/mk.conf.example on systems which
8 # may already have a /etc/mk.conf file) or to the location specified
9 # by using --mkconf. Run this program from the pkgsrc/bootstrap
13 [ --force ] [ --targetdir=<tar target dir> ] [ --mkconf=<target> ]
14 [ --no-build ] [ --workdir=<work dir> ] [ bootstrap script arguments ]'
24 mkfile=$sysconfdir/mk.conf
30 wrkdir=work # default: relative to pkgsrc/bootstrap
37 mkfile=$sysconfdir/mk.conf
38 pkgdbdir=$prefix/pkgdb
41 # Don't use the ports /var/db/pkg
42 pkgdbdir=$prefix/pkgdb
45 # Don't use the ports /var/db/pkg
46 pkgdbdir=$prefix/pkgdb
49 mkfile=$sysconfdir/mk.conf.example
50 # Don't use the interopsystems.com package dir
51 pkgdbdir=$prefix/pkgdb
55 # Don't overwrite the system's mk.conf
56 mkfile=$sysconfdir/mk.conf.example
59 # Don't overwrite the system's mk.conf
60 mkfile=$sysconfdir/mk.conf.example
61 # Don't use the ports /var/db/pkg
62 pkgdbdir=$prefix/pkgdb
63 # Use "arch -s" instead of uname -p
67 sedprog=/usr/xpg4/bin/sed
71 while [ $# -gt 0 ]; do
74 --no-build) build=no ;;
75 --targetdir=*) targetdir=`echo $1 | $sedprog -e 's|--targetdir=||'` ;;
76 --prefix=*) prefix=`echo $1 | $sedprog -e 's|--prefix=||'` ;;
77 --mkconf=*) mkfile=`echo $1 | $sedprog -e 's|--mkconf=||'` ;;
78 --pkgdbdir=*) pkgdbdir=`echo $1 | $sedprog -e 's|--pkgdbdir=||'` ;;
79 --ignore-case-check) ignorecasecheck=yes ;;
80 --ignore-user-check) ignoreusercheck=yes ;;
81 --workdir=*) wrkdir=`echo $1 | $sedprog -e 's|--workdir=||'` ;;
82 --*) echo "$usage"; exit 1 ;;
87 if [ "$build" = "yes" ] && [ "$force" != "yes" ]; then
88 if [ -d "$prefix" ] || [ -d "$pkgdbdir" ]; then
89 echo "Some pkgsrc infrastructure exists on this system already."
90 echo "Use --force to move it out of the way."
93 elif [ "$build" = "yes" ]; then
94 mv -f "$prefix" "$prefix.$$"
95 mv -f "$pkgdbdir" "$pkgdbdir.$$"
96 mv -f "$mkfile" "$mkfile.$$"
99 if [ "$build" != "no" ]; then
102 bootstrap_flags="--prefix=$prefix --pkgdbdir=$pkgdbdir --workdir=$wrkdir"
103 if [ "$ignorecasecheck" = "yes" ]; then
104 bootstrap_flags="$bootstrap_flags --ignore-case-check"
107 if [ "$ignoreusercheck" = "yes" ]; then
108 bootstrap_flags="$bootstrap_flags --ignore-user-check"
111 echo "Making bootstrap kit with"
112 echo "prefix = $prefix"
113 echo "pkgdbdir = $pkgdbdir"
114 echo "mk.conf.example will be copied to $mkfile"
118 ./bootstrap $bootstrap_flags
119 if [ $? != "0" ]; then
120 echo "Bootstrap error."
128 if [ -x /usr/ccs/bin/strip ]; then
129 strip=/usr/ccs/bin/strip
132 echo "Stripping binaries..."
133 $strip "$prefix/"bin/*
134 $strip "$prefix/"sbin/*
136 echo "Making binary kit."
137 PATH="$prefix/bin:$PATH"; export PATH # in case tar was built by bootstrap
138 [ ! -d $sysconfdir ] && mkdir -p $sysconfdir
139 cp ${wrkdir}/mk.conf.example $mkfile && \
141 tar -hcf "$targetdir/bootstrap-pkgsrc-$opsys-$osrev-$ospro-$date.tar" \
142 .$prefix .$pkgdbdir .$mkfile && \
143 ls -l "$targetdir/bootstrap-pkgsrc-$opsys-$osrev-$ospro-$date.tar"