rsc | b4e0c54 | 2004-02-29 22:53:01 +0000 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | |
rsc | df29f2c | 2005-12-30 18:52:40 +0000 | [diff] [blame] | 3 | dobuild=true |
| 4 | doinstall=true |
| 5 | |
| 6 | case "x$1" in |
| 7 | x) |
| 8 | ;; |
| 9 | x-b) |
| 10 | dobuild=true |
| 11 | doinstall=false |
| 12 | ;; |
| 13 | x-c) |
| 14 | dobuild=false |
| 15 | doinstall=true |
| 16 | ;; |
| 17 | *) |
| 18 | echo 'usage: INSTALL [-b | -c]' 1>&2 |
| 19 | exit 1 |
| 20 | esac |
| 21 | |
rsc | b4e0c54 | 2004-02-29 22:53:01 +0000 | [diff] [blame] | 22 | PLAN9=`pwd` export PLAN9 |
rsc | 9055026 | 2005-07-22 18:44:46 +0000 | [diff] [blame] | 23 | PATH=/bin:/usr/bin:$PLAN9/bin:$PATH export PATH |
rsc | b4e0c54 | 2004-02-29 22:53:01 +0000 | [diff] [blame] | 24 | |
rsc | 7495a52 | 2005-11-26 15:39:46 +0000 | [diff] [blame] | 25 | echo "* Resetting $PLAN9/config" |
rsc | 52fdc1a | 2005-02-02 22:08:10 +0000 | [diff] [blame] | 26 | rm -f config |
rsc | 7a2c885 | 2005-01-17 21:30:05 +0000 | [diff] [blame] | 27 | |
rsc | 95d4663 | 2005-01-14 18:02:48 +0000 | [diff] [blame] | 28 | ( |
Russ Cox | b893932 | 2008-05-10 13:34:32 -0400 | [diff] [blame] | 29 | echo "* Compiler version:" |
Russ Cox | 4fbb40c | 2008-12-06 15:53:13 -0800 | [diff] [blame^] | 30 | 9c -v 2>&1 | grep -v 'Configured with:' | grep -i version | sed 's/^/ /' |
Russ Cox | b893932 | 2008-05-10 13:34:32 -0400 | [diff] [blame] | 31 | |
rsc | 7a2c885 | 2005-01-17 21:30:05 +0000 | [diff] [blame] | 32 | if [ `uname` = Linux ]; then |
| 33 | # On Linux, we use the kernel version to decide whether |
| 34 | # to use pthreads or not. On 2.6 versions that aren't |
| 35 | # linking with NPTL by default, pretend to be an older kernel. |
rsc | 7495a52 | 2005-11-26 15:39:46 +0000 | [diff] [blame] | 36 | echo "* Running on Linux: checking for NPTL..." |
rsc | d338028 | 2005-01-17 21:38:20 +0000 | [diff] [blame] | 37 | gcc lib/linux-isnptl.c -lpthread |
rsc | 8327d41 | 2005-01-23 01:55:42 +0000 | [diff] [blame] | 38 | if ./a.out >/dev/null |
rsc | 7a2c885 | 2005-01-17 21:30:05 +0000 | [diff] [blame] | 39 | then |
| 40 | echo " NPTL found." |
rsc | 7ca7059 | 2005-01-21 20:21:12 +0000 | [diff] [blame] | 41 | echo "SYSVERSION=2.6.x" >$PLAN9/config |
rsc | 7a2c885 | 2005-01-17 21:30:05 +0000 | [diff] [blame] | 42 | else |
| 43 | echo " NPTL not found." |
rsc | 7ca7059 | 2005-01-21 20:21:12 +0000 | [diff] [blame] | 44 | echo "SYSVERSION=2.4.x" >$PLAN9/config |
rsc | 7a2c885 | 2005-01-17 21:30:05 +0000 | [diff] [blame] | 45 | fi |
rsc | b04c42e | 2005-01-17 21:32:55 +0000 | [diff] [blame] | 46 | rm -f ./a.out |
rsc | 7a2c885 | 2005-01-17 21:30:05 +0000 | [diff] [blame] | 47 | fi |
rsc | 52fdc1a | 2005-02-02 22:08:10 +0000 | [diff] [blame] | 48 | |
| 49 | if [ -f LOCAL.config ]; then |
| 50 | echo Using LOCAL.config options: |
| 51 | sed 's/^/ /' LOCAL.config |
| 52 | cat LOCAL.config >>config |
| 53 | fi |
| 54 | |
rsc | b4e0c54 | 2004-02-29 22:53:01 +0000 | [diff] [blame] | 55 | cd src |
rsc | df29f2c | 2005-12-30 18:52:40 +0000 | [diff] [blame] | 56 | if $dobuild; then |
| 57 | if [ ! -x ../bin/mk ]; then |
| 58 | echo "* Building mk..." |
| 59 | ../dist/buildmk 2>&1 | sed 's/^[+] //' |
| 60 | fi |
| 61 | if [ ! -x ../bin/mk ]; then |
| 62 | echo "* Error: mk failed to build." |
rsc | 6637b80 | 2005-11-28 21:14:44 +0000 | [diff] [blame] | 63 | exit 1 |
| 64 | fi |
rsc | df29f2c | 2005-12-30 18:52:40 +0000 | [diff] [blame] | 65 | |
| 66 | echo "* Building everything (be patient)..." |
| 67 | mk clean |
| 68 | mk libs-nuke |
| 69 | mk all || exit 1 |
| 70 | if [ ! -x $PLAN9/src/cmd/o.cleanname -o ! -x $PLAN9/src/cmd/acme/o.acme ]; then |
| 71 | echo "* Warning: not all binaries built successfully." |
rsc | 6637b80 | 2005-11-28 21:14:44 +0000 | [diff] [blame] | 72 | fi |
rsc | df29f2c | 2005-12-30 18:52:40 +0000 | [diff] [blame] | 73 | echo "* Installing everything in $PLAN9/bin..." |
| 74 | mk install || exit 1 |
| 75 | if [ ! -x $PLAN9/bin/cleanname -o ! -x $PLAN9/bin/acme -o ! -x $PLAN9/bin/sam ]; then |
| 76 | echo " " |
| 77 | echo "* Warning: not all binaries built successfully." |
| 78 | fi |
| 79 | echo "* Cleaning up..." |
| 80 | mk clean |
rsc | 6637b80 | 2005-11-28 21:14:44 +0000 | [diff] [blame] | 81 | fi |
| 82 | |
rsc | df29f2c | 2005-12-30 18:52:40 +0000 | [diff] [blame] | 83 | if $doinstall; then |
| 84 | if [ ! -x $PLAN9/bin/cleanname -o ! -x $PLAN9/bin/sam ]; then |
| 85 | # Cleanname and sam are needed for moveplan9.sh and the man updates. |
| 86 | if [ ! -x $PLAN9/bin/cleanname ]; then |
| 87 | echo " " |
| 88 | echo "* Installation failed: $PLAN9/bin/cleanname does not exist." |
| 89 | exit 1 |
| 90 | fi |
| 91 | if [ ! -x $PLAN9/bin/sam ]; then |
| 92 | echo " " |
| 93 | echo "* Installation failed: $PLAN9/bin/sam does not exist." |
| 94 | exit 1 |
| 95 | fi |
| 96 | echo "* NOT renaming hard-coded /usr/local/plan9 paths." |
| 97 | echo "* NOT building web manual." |
| 98 | else |
| 99 | echo "* Renaming hard-coded /usr/local/plan9 paths..." |
| 100 | cd $PLAN9 |
| 101 | sh lib/moveplan9.sh |
| 102 | echo "* Building web manual..." |
| 103 | ( |
| 104 | cd $PLAN9/dist |
| 105 | echo cd `pwd`';' mk man |
| 106 | mk man |
| 107 | ) |
| 108 | fi |
| 109 | |
| 110 | if [ -x LOCAL.INSTALL ]; then |
| 111 | echo "* Running local modifications..." |
| 112 | echo cd `pwd`';' ./LOCAL.INSTALL |
| 113 | ./LOCAL.INSTALL |
| 114 | fi |
| 115 | |
| 116 | echo "* Done. " |
| 117 | echo " " |
| 118 | echo "* Add these to your profile environment." |
| 119 | echo " PLAN9=$PLAN9 export PLAN9" |
| 120 | echo ' PATH=$PATH:$PLAN9/bin export PATH' |
rsc | 3b1a43f | 2005-01-18 20:17:42 +0000 | [diff] [blame] | 121 | fi |
rsc | 8f8ef0c | 2006-07-24 19:05:01 +0000 | [diff] [blame] | 122 | ) 2>&1 | tee install.log | awk -f $PLAN9/dist/isum.awk -v 'copy='install.sum |
rsc | 7495a52 | 2005-11-26 15:39:46 +0000 | [diff] [blame] | 123 | |