pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/bootstrap * bootstrap no longer needs regex.h



details:   https://anonhg.NetBSD.org/pkgsrc/rev/d14a090d1b3e
branches:  trunk
changeset: 517943:d14a090d1b3e
user:      schwarz <schwarz%pkgsrc.org@localhost>
date:      Sat Aug 26 15:42:27 2006 +0000

description:
* 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

diffstat:

 bootstrap/README.IRIX5.3 |  70 ++++++++++-------------------------------------
 bootstrap/bootstrap      |  41 +++++++++++++++++++++------
 2 files changed, 47 insertions(+), 64 deletions(-)

diffs (199 lines):

diff -r 33d81c87e157 -r d14a090d1b3e bootstrap/README.IRIX5.3
--- a/bootstrap/README.IRIX5.3  Sat Aug 26 15:39:07 2006 +0000
+++ b/bootstrap/README.IRIX5.3  Sat Aug 26 15:42:27 2006 +0000
@@ -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 @@
 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 @@
 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:
 
-.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
- 
+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.
+
 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
diff -r 33d81c87e157 -r d14a090d1b3e bootstrap/bootstrap
--- a/bootstrap/bootstrap       Sat Aug 26 15:39:07 2006 +0000
+++ b/bootstrap/bootstrap       Sat Aug 26 15:42:27 2006 +0000
@@ -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 @@
 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 @@
                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 @@
 
 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 @@
 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 @@
        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 @@
 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
 



Home | Main Index | Thread Index | Old Index