* bootstrap no longer needs regex.h
* support environment variables CP, GREP, ID, MKDIR, TEST, TOUCH, XARGS to allow specification on non-standard tools (needed on IRIX 5) * preserve compiler/linker flags if set
This commit is contained in:
parent
79d60be97e
commit
0b9cc38f3e
2 changed files with 47 additions and 64 deletions
|
@ -1,4 +1,4 @@
|
|||
$NetBSD: README.IRIX5.3,v 1.3 2006/08/05 14:57:19 schwarz Exp $
|
||||
$NetBSD: README.IRIX5.3,v 1.4 2006/08/26 15:42:27 schwarz Exp $
|
||||
|
||||
Installing pkgsrc on IRIX 5.3 requires some preparation.
|
||||
First, if necessary, get the IRIX 5.3 IDO (cc etc.) from SGI at
|
||||
|
@ -14,23 +14,12 @@ Furthermore, get Y2k patches from e.g.
|
|||
ftp://ftp.mayn.de/pub/really_old_stuff/irix/oldstuff/ if you haven't
|
||||
installed them already.
|
||||
|
||||
To date, pkgsrc expects the SGI IDO cc and might run into problems when
|
||||
using gcc.
|
||||
With IDO cc and the necessary supporting tools and development files
|
||||
installed you can run bootstrap to create the essential pkgsrc tools,
|
||||
notably bmake. Once this is done you will find mk.conf.example to start
|
||||
your mk.conf pkgsrc configuration file from. You might want to add
|
||||
CFLAGS+=-O2 (or if you are using an R4K machine -O2 -mips2)
|
||||
and
|
||||
DBG=
|
||||
|
||||
Unfortunately many of IRIX 5.3's native tools do not provide
|
||||
functionalitites that pkgsrc expects. It is therefore necessary to install
|
||||
the respective GNU tools for cp, grep, id, mkdir, test, touch, which,
|
||||
and xargs. To avoid conflicts you might want to do so under a different
|
||||
directory hierarchy than pkgsrc (in the following example
|
||||
--prefix=/usr/local is assumed). Obtain and install the following GNU
|
||||
software:
|
||||
directory hierarchy than pkgsrc (in the following example /usr/local is
|
||||
assumed). Obtain and install the following GNU software:
|
||||
- GNU findutils (4.2.23 is known to install)
|
||||
- GNU grep (2.5.1a works, but you have to apply the patch from
|
||||
pkgsrc/textproc/grep/patches/patch-ab; either do so manually by editing the
|
||||
|
@ -42,50 +31,23 @@ makeinfo; just proceed with make install)
|
|||
configure)
|
||||
- GNU which (2.16 works; be sure to configure with CC="cc -Xcpluscomm")
|
||||
|
||||
These tools can be installed independently of bootstrapping. To make them
|
||||
accessible to pkgsrc make sure your mk.conf contains something like this:
|
||||
To date, pkgsrc expects the SGI IDO cc and might run into problems when
|
||||
using gcc.
|
||||
With IDO cc and the necessary supporting tools and development files
|
||||
installed you can run bootstrap to create the essential pkgsrc tools,
|
||||
notably bmake:
|
||||
|
||||
env CP=/usr/local/bin/cp GREP=/usr/local/bin/grep ID=/usr/local/bin/id MKDIR="/usr/local/bin/mkdir -p" TEST=/usr/local/bin/test TOUCH=/usr/local/bin/touch XARGS="/usr/local/bin/xargs -r" ./bootstrap
|
||||
|
||||
Add the nedessary arguments such as --prefix= as necessary.
|
||||
You might also want to set the CFLAGS, CPPFLAGS, or LDFLAGS.
|
||||
For the IDO cc CFLAGS=-O2 (or CFLAGS="-O2 -mips2" if you are using an R4K
|
||||
machine) is recommended.
|
||||
|
||||
.if exists(${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}id)
|
||||
TOOLS_PLATFORM.id=${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}id
|
||||
.else
|
||||
TOOLS_PLATFORM.id=/usr/local/bin/id
|
||||
.endif
|
||||
.if exists(${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}mkdir)
|
||||
TOOLS_PLATFORM.mkdir=${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}mkdir -p
|
||||
.else
|
||||
TOOLS_PLATFORM.mkdir=/usr/local/bin/mkdir -p
|
||||
.endif
|
||||
.if exists(${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}grep)
|
||||
TOOLS_PLATFORM.grep=${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}grep
|
||||
.else
|
||||
TOOLS_PLATFORM.grep=/usr/local/bin/grep
|
||||
.endif
|
||||
.if exists(${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}cp)
|
||||
TOOLS_PLATFORM.cp=${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}cp
|
||||
.else
|
||||
TOOLS_PLATFORM.cp=/usr/local/bin/cp
|
||||
.endif
|
||||
.if exists(${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}test)
|
||||
TOOLS_PLATFORM.test=${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}test
|
||||
.else
|
||||
TOOLS_PLATFORM.test=/usr/local/bin/test
|
||||
.endif
|
||||
.if exists(${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}touch)
|
||||
TOOLS_PLATFORM.touch=${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}touch
|
||||
.else
|
||||
TOOLS_PLATFORM.touch=/usr/local/bin/touch
|
||||
.endif
|
||||
.if exists(${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}xargs)
|
||||
TOOLS_PLATFORM.xargs=${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}xargs -r
|
||||
.else
|
||||
TOOLS_PLATFORM.xargs=/usr/local/bin/xargs -r
|
||||
.endif
|
||||
TYPE=/usr/local/bin/which
|
||||
|
||||
IRIX 5.3 IDO does not come with a C++ compiler. For packages that require
|
||||
C++ you can get the GNU C++ compiler, g++, which is part of the gcc
|
||||
distribution. Gcc 3.4.4 is known to bootstrap on IRIX 5.3. To activate it,
|
||||
add the following lines to your mk.conf:
|
||||
add the following lines to your mk.conf after bootstrapping:
|
||||
|
||||
CXX=g++
|
||||
USE_TOOLS+=cxx
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#! /bin/sh
|
||||
|
||||
# $NetBSD: bootstrap,v 1.80 2006/08/20 14:25:22 schwarz Exp $
|
||||
# $NetBSD: bootstrap,v 1.81 2006/08/26 15:42:27 schwarz Exp $
|
||||
#
|
||||
#
|
||||
# Copyright (c) 2001-2002 Alistair G. Crooks. All rights reserved.
|
||||
|
@ -35,6 +35,11 @@
|
|||
#
|
||||
#set -x
|
||||
|
||||
# the following environment variables are honored:
|
||||
# compiler/linker flags: CFLAGS, CPPFLAGS, LDFLAGS
|
||||
# tools: CP, GREP, ID, MKDIR, TEST, TOUCH, XARGS
|
||||
|
||||
|
||||
BOOTSTRAP_VERSION=20060721
|
||||
|
||||
ignorecasecheck=no
|
||||
|
@ -193,7 +198,7 @@ opsys_finish()
|
|||
is_root()
|
||||
{
|
||||
if [ `uname -s` = "IRIX" ]; then
|
||||
if [ `uname -r` -lt 6 ]; then
|
||||
if [ `uname -r` -lt 6 -a -z "$ID" ]; then
|
||||
# older version of IRIX have an id command with limited features
|
||||
if [ "`$idprog`" != "uid=0(root) gid=0(sys)" ]; then
|
||||
return 0
|
||||
|
@ -394,9 +399,8 @@ IRIX*)
|
|||
need_mkdir=yes
|
||||
# IRIX 5 does not have uint32_t typedef'd in sys/types.h
|
||||
tnftpxflags="-DUINT32_T=int"
|
||||
# IRIX 5 is lacking fnmatch.h and regex.h, both provided by libnbcompat
|
||||
# IRIX 5 is lacking fnmatch.h needed to build mtree
|
||||
needfnmatchh=yes
|
||||
needregexh=yes
|
||||
fi
|
||||
;;
|
||||
Linux)
|
||||
|
@ -550,8 +554,16 @@ fi
|
|||
|
||||
check_prog awkprog awk
|
||||
check_prog chmodprog chmod
|
||||
check_prog cpprog cp
|
||||
check_prog idprog id
|
||||
if [ -n "$CP" ]; then
|
||||
cpprog="$CP"
|
||||
else
|
||||
check_prog cpprog cp
|
||||
fi
|
||||
if [ -n "$ID" ]; then
|
||||
idprog="$ID"
|
||||
else
|
||||
check_prog idprog id
|
||||
fi
|
||||
check_prog groupsprog groups
|
||||
check_prog lnprog ln
|
||||
check_prog lsprog ls
|
||||
|
@ -661,9 +673,6 @@ run_cmd "(cd $wrkdir/libnbcompat; $shprog ./configure -C --prefix=$prefix --mand
|
|||
if [ x"$needfnmatchh" = x"yes" ]; then
|
||||
$lnprog -s nbcompat/fnmatch.h $wrkdir/libnbcompat/fnmatch.h
|
||||
fi
|
||||
if [ x"$needregexh" = x"yes" ]; then
|
||||
$lnprog -s nbcompat/regex.h $wrkdir/libnbcompat/regex.h
|
||||
fi
|
||||
|
||||
# set up an example mk.conf file
|
||||
MKCONF_EXAMPLE=${wrkdir}/mk.conf.example
|
||||
|
@ -741,7 +750,7 @@ if [ "$need_fixed_strip" = "yes" ] ; then
|
|||
need_extras=yes
|
||||
fi
|
||||
|
||||
if [ "$need_mkdir" = "yes" ]; then
|
||||
if [ "$need_mkdir" = "yes" -a -z "$MKDIR" ]; then
|
||||
echo_msg "Installing fixed mkdir script \"mkdir-sh\""
|
||||
run_cmd "$install_sh -c -o $user -g $group -m 755 $pkgsrcdir/pkgtools/bootstrap-extras/files/mkdir-sh $prefix/bin/mkdir-sh"
|
||||
echo "TOOLS_PLATFORM.mkdir?= $prefix/bin/mkdir-sh -p" >> ${MKCONF_EXAMPLE}
|
||||
|
@ -836,6 +845,18 @@ echo_msg "Installing pkgtools"
|
|||
copy_src $pkgsrcdir/pkgtools/pkg_install/files pkg_install
|
||||
run_cmd "(cd $wrkdir/pkg_install; env $BSTRAP_ENV CPPFLAGS='$CPPFLAGS -I../libnbcompat -I../../libnbcompat' LDFLAGS='$LDFLAGS -L../libnbcompat -L../../libnbcompat' LIBS='-lnbcompat' $shprog ./configure -C --prefix=$prefix --sysconfdir=$sysconfdir --with-pkgdbdir=$pkgdbdir --mandir=$mandir $pkg_install_args && $bmake && $bmake install)"
|
||||
|
||||
# preserve compiler and tool environment variables settings
|
||||
test -z "$CP" || echo "TOOLS_PLATFORM.cp?= $CP" >> ${MKCONF_EXAMPLE}
|
||||
test -z "$GREP" || echo "TOOLS_PLATFORM.grep?= $GREP" >> ${MKCONF_EXAMPLE}
|
||||
test -z "$ID" || echo "TOOLS_PLATFORM.id?= $ID" >> {MKCONF_EXAMPLE}
|
||||
test -z "$MKDIR" || echo "TOOLS_PLATFORM.mkdir?= $MKDIR" >> ${MKCONF_EXAMPLE}
|
||||
test -z "$TEST" || echo "TOOLS_PLATFORM.test?= $TEST" >> ${MKCONF_EXAMPLE}
|
||||
test -z "$TOUCH" || echo "TOOLS_PLATFORM.touch?= $TOUCH" >> ${MKCONF_EXAMPLE}
|
||||
test -z "$XARGS" || echo "TOOLS_PLATFORM.xargs?= $XARGS" >> ${MKCONF_EXAMPLE}
|
||||
test -z "$CFLAGS" || echo "CFLAGS+= $CFLAGS" >> ${MKCONF_EXAMPLE}
|
||||
test -z "$CPPFLAGS" || echo "CPPFLAGS+= $CPPFLAGS" >> ${MKCONF_EXAMPLE}
|
||||
test -z "$LDFLAGS" || echo "LDFLAGS+= $LDFLAGS" >> ${MKCONF_EXAMPLE}
|
||||
|
||||
# opsys specific fiddling
|
||||
opsys_finish
|
||||
|
||||
|
|
Loading…
Reference in a new issue