Benny Prijono | ca39168 | 2005-11-07 19:57:09 +0000 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | |
| 3 | # |
| 4 | # Detect machine |
| 5 | # |
Benny Prijono | e67d99a | 2006-03-20 12:39:24 +0000 | [diff] [blame^] | 6 | MACHINE=`uname -p` |
Benny Prijono | ca39168 | 2005-11-07 19:57:09 +0000 | [diff] [blame] | 7 | |
| 8 | if echo $MACHINE | grep sun4u > /dev/null; then |
| 9 | MACHINE_NAME=sparc |
| 10 | elif echo $MACHINE | grep i.86 > /dev/null; then |
| 11 | MACHINE_NAME=i386 |
| 12 | elif echo $MACHINE | grep alpha > /dev/null; then |
| 13 | MACHINE_NAME=alpha |
Benny Prijono | e67d99a | 2006-03-20 12:39:24 +0000 | [diff] [blame^] | 14 | elif echo $MACHINE | grep powerpc > /dev/null; then |
| 15 | MACHINE_NAME=powerpc |
Benny Prijono | ca39168 | 2005-11-07 19:57:09 +0000 | [diff] [blame] | 16 | else |
Benny Prijono | e67d99a | 2006-03-20 12:39:24 +0000 | [diff] [blame^] | 17 | echo "Unable to detect processor type ('uname -p' == '$MACHINE')" |
Benny Prijono | ca39168 | 2005-11-07 19:57:09 +0000 | [diff] [blame] | 18 | exit 1 |
| 19 | fi |
| 20 | |
| 21 | # |
| 22 | # Detect OS and host |
| 23 | # |
| 24 | SYSTEM=`uname -s` |
| 25 | |
| 26 | if echo $SYSTEM | grep -i sunos > /dev/null; then |
| 27 | OS_NAME=sunos |
| 28 | HOST_NAME=unix |
| 29 | elif echo $SYSTEM | grep -i linux > /dev/null; then |
| 30 | OS_NAME=linux |
| 31 | HOST_NAME=unix |
Benny Prijono | 1a73a05 | 2005-11-07 21:58:51 +0000 | [diff] [blame] | 32 | # More on linux version |
| 33 | KERNEL_VER=`uname -r` |
| 34 | if echo $KERNEL_VER | grep '^2\.4' > /dev/null; then |
| 35 | LINUX_POLL=select |
| 36 | elif echo $KERNEL_VER | grep '^2\.2' > /dev/null; then |
| 37 | LINUX_POLL=select |
| 38 | elif echo $KERNEL_VER | grep '^2\.0' > /dev/null; then |
| 39 | LINUX_EPOLL=select |
| 40 | else |
| 41 | LINUX_POLL=epoll |
| 42 | fi |
Benny Prijono | ca39168 | 2005-11-07 19:57:09 +0000 | [diff] [blame] | 43 | elif echo $SYSTEM | grep -i mingw > /dev/null; then |
| 44 | OS_NAME=win32 |
| 45 | HOST_NAME=mingw |
| 46 | elif echo $SYSTEM | grep -i cygwin > /dev/null; then |
| 47 | OS_NAME=win32 |
| 48 | HOST_NAME=mingw |
Benny Prijono | e67d99a | 2006-03-20 12:39:24 +0000 | [diff] [blame^] | 49 | elif echo $SYSTEM | grep -i darwin > /dev/null; then |
| 50 | OS_NAME=darwinos |
| 51 | HOST_NAME=unix |
Benny Prijono | ca39168 | 2005-11-07 19:57:09 +0000 | [diff] [blame] | 52 | else |
| 53 | echo "Unable to detect system type ('uname -s' == '$SYSTEM')" |
| 54 | exit 1 |
| 55 | fi |
| 56 | |
| 57 | # |
| 58 | # Detect gcc |
| 59 | # |
| 60 | if gcc --version 2>&1 > /dev/null; then |
| 61 | CC_NAME=gcc |
| 62 | else |
| 63 | echo "Unable to find gcc" |
| 64 | exit 1 |
| 65 | fi |
| 66 | |
Benny Prijono | 81fd5c3 | 2005-11-07 20:04:34 +0000 | [diff] [blame] | 67 | if test -f build.mak; then |
| 68 | echo 'Saving build.mak --> build.mak.old' |
| 69 | cp -f build.mak build.mak.old |
| 70 | fi |
| 71 | |
Benny Prijono | ca39168 | 2005-11-07 19:57:09 +0000 | [diff] [blame] | 72 | echo 'Writing build.mak as follows:' |
Benny Prijono | 1a73a05 | 2005-11-07 21:58:51 +0000 | [diff] [blame] | 73 | echo " MACHINE_NAME = $MACHINE_NAME" |
| 74 | echo " OS_NAME = $OS_NAME" |
| 75 | echo " HOST_NAME = $HOST_NAME" |
| 76 | echo " CC_NAME = $CC_NAME" |
| 77 | echo " LINUX_POLL = $LINUX_POLL" |
Benny Prijono | ca39168 | 2005-11-07 19:57:09 +0000 | [diff] [blame] | 78 | |
| 79 | echo "# Auto-generated build.mak" > build.mak |
| 80 | echo "export MACHINE_NAME := $MACHINE_NAME" >> build.mak |
| 81 | echo "export OS_NAME := $OS_NAME" >> build.mak |
| 82 | echo "export HOST_NAME := $HOST_NAME" >> build.mak |
| 83 | echo "export CC_NAME := $CC_NAME" >> build.mak |
Benny Prijono | 1a73a05 | 2005-11-07 21:58:51 +0000 | [diff] [blame] | 84 | echo "export LINUX_POLL := $LINUX_POLL" >> build.mak |
| 85 | |
Benny Prijono | 808f0ce | 2006-03-10 13:23:12 +0000 | [diff] [blame] | 86 | touch user.mak |
| 87 | |
Benny Prijono | 1a73a05 | 2005-11-07 21:58:51 +0000 | [diff] [blame] | 88 | echo |
Benny Prijono | 808f0ce | 2006-03-10 13:23:12 +0000 | [diff] [blame] | 89 | echo "The configuration for current host has been written to 'build.mak'." |
| 90 | echo "Customizations can be put in:" |
| 91 | echo " - 'user.mak'" |
| 92 | echo " - 'pjlib/include/pj/config_site.h'" |
| 93 | echo |
| 94 | echo "Next, run 'make dep && make clean && make'" |
Benny Prijono | ca39168 | 2005-11-07 19:57:09 +0000 | [diff] [blame] | 95 | |