blob: 4e16315ee21292118df0db07fbdfabe088d04049 [file] [log] [blame]
Benny Prijonoca391682005-11-07 19:57:09 +00001#!/bin/sh
2
3#
Benny Prijono42c5b9e2006-05-10 19:24:40 +00004# Detect machine, unless the choice has been made already.
Benny Prijonoca391682005-11-07 19:57:09 +00005#
Benny Prijono42c5b9e2006-05-10 19:24:40 +00006if [ "$MACHINE" = "" ]; then
7 MACHINE=`uname -m`
8fi
Benny Prijonoca391682005-11-07 19:57:09 +00009
Benny Prijono42c5b9e2006-05-10 19:24:40 +000010if echo $MACHINE | grep sun4u > /dev/null; then
Benny Prijonoca391682005-11-07 19:57:09 +000011 MACHINE_NAME=sparc
12elif echo $MACHINE | grep i.86 > /dev/null; then
13 MACHINE_NAME=i386
Benny Prijono7db431e2006-07-23 14:38:49 +000014elif echo $MACHINE | grep x86_64 > /dev/null; then
15 MACHINE_NAME=x86_64
Benny Prijonoca391682005-11-07 19:57:09 +000016elif echo $MACHINE | grep alpha > /dev/null; then
17 MACHINE_NAME=alpha
Benny Prijono1ae79452006-05-21 23:20:54 +000018elif echo $MACHINE | grep Mac > /dev/null; then
Benny Prijonoe67d99a2006-03-20 12:39:24 +000019 MACHINE_NAME=powerpc
Benny Prijonoca391682005-11-07 19:57:09 +000020else
Benny Prijono42c5b9e2006-05-10 19:24:40 +000021 echo "Unable to detect processor type ('uname -m' == '$MACHINE')"
Benny Prijonoca391682005-11-07 19:57:09 +000022 exit 1
23fi
24
25#
Benny Prijono42c5b9e2006-05-10 19:24:40 +000026# Detect OS and host, unless the choice has been made already
Benny Prijonoca391682005-11-07 19:57:09 +000027#
Benny Prijono42c5b9e2006-05-10 19:24:40 +000028if [ "$SYSTEM" = "" ]; then
29 SYSTEM=`uname -s`
30fi
31
Benny Prijonoca391682005-11-07 19:57:09 +000032
33if echo $SYSTEM | grep -i sunos > /dev/null; then
34 OS_NAME=sunos
35 HOST_NAME=unix
36elif echo $SYSTEM | grep -i linux > /dev/null; then
37 OS_NAME=linux
38 HOST_NAME=unix
Benny Prijono1a73a052005-11-07 21:58:51 +000039 # More on linux version
40 KERNEL_VER=`uname -r`
41 if echo $KERNEL_VER | grep '^2\.4' > /dev/null; then
42 LINUX_POLL=select
43 elif echo $KERNEL_VER | grep '^2\.2' > /dev/null; then
44 LINUX_POLL=select
45 elif echo $KERNEL_VER | grep '^2\.0' > /dev/null; then
46 LINUX_EPOLL=select
47 else
Benny Prijono080a2c42006-03-30 20:55:20 +000048# LINUX_POLL=epoll
49 LINUX_POLL=select
Benny Prijono1a73a052005-11-07 21:58:51 +000050 fi
Benny Prijonoca391682005-11-07 19:57:09 +000051elif echo $SYSTEM | grep -i mingw > /dev/null; then
52 OS_NAME=win32
53 HOST_NAME=mingw
54elif echo $SYSTEM | grep -i cygwin > /dev/null; then
55 OS_NAME=win32
56 HOST_NAME=mingw
Benny Prijonoe67d99a2006-03-20 12:39:24 +000057elif echo $SYSTEM | grep -i darwin > /dev/null; then
58 OS_NAME=darwinos
59 HOST_NAME=unix
Benny Prijono42c5b9e2006-05-10 19:24:40 +000060elif echo $SYSTEM | grep -i rtems > /dev/null; then
61 OS_NAME=rtems
62 HOST_NAME=unix
Benny Prijonoca391682005-11-07 19:57:09 +000063else
64 echo "Unable to detect system type ('uname -s' == '$SYSTEM')"
65 exit 1
66fi
67
68#
Benny Prijono42c5b9e2006-05-10 19:24:40 +000069# Detect gcc, unless it has been chosen already
Benny Prijonoca391682005-11-07 19:57:09 +000070#
Benny Prijono42c5b9e2006-05-10 19:24:40 +000071if [ "$CC_NAME" = "" ]; then
72 if gcc --version 2>&1 > /dev/null; then
73 CC_NAME=gcc
74 else
75 echo "Unable to find gcc"
76 exit 1
77 fi
78fi
79
Benny Prijonoca391682005-11-07 19:57:09 +000080
Benny Prijono0382cd82006-05-04 08:43:02 +000081#
Benny Prijono42c5b9e2006-05-10 19:24:40 +000082# Specify TARGET_NAME, if not already choosen.
Benny Prijono0382cd82006-05-04 08:43:02 +000083#
Benny Prijono42c5b9e2006-05-10 19:24:40 +000084if [ "$TARGET_NAME" = "" ]; then
85 TARGET_NAME=$MACHINE_NAME-$OS_NAME-$CC_NAME
86fi
Benny Prijono0382cd82006-05-04 08:43:02 +000087
88
Benny Prijono81fd5c32005-11-07 20:04:34 +000089if test -f build.mak; then
90 echo 'Saving build.mak --> build.mak.old'
91 cp -f build.mak build.mak.old
92fi
93
Benny Prijonoca391682005-11-07 19:57:09 +000094echo 'Writing build.mak as follows:'
Benny Prijono1a73a052005-11-07 21:58:51 +000095echo " MACHINE_NAME = $MACHINE_NAME"
96echo " OS_NAME = $OS_NAME"
97echo " HOST_NAME = $HOST_NAME"
98echo " CC_NAME = $CC_NAME"
Benny Prijono0382cd82006-05-04 08:43:02 +000099echo " TARGET_NAME = $TARGET_NAME"
Benny Prijono42c5b9e2006-05-10 19:24:40 +0000100echo " CROSS_COMPILE= $CROSS_COMPILE"
Benny Prijono1a73a052005-11-07 21:58:51 +0000101echo " LINUX_POLL = $LINUX_POLL"
Benny Prijonoca391682005-11-07 19:57:09 +0000102
103echo "# Auto-generated build.mak" > build.mak
104echo "export MACHINE_NAME := $MACHINE_NAME" >> build.mak
105echo "export OS_NAME := $OS_NAME" >> build.mak
106echo "export HOST_NAME := $HOST_NAME" >> build.mak
107echo "export CC_NAME := $CC_NAME" >> build.mak
Benny Prijono0382cd82006-05-04 08:43:02 +0000108echo "export TARGET_NAME := $TARGET_NAME" >> build.mak
Benny Prijono42c5b9e2006-05-10 19:24:40 +0000109echo "export CROSS_COMPILE := $CROSS_COMPILE" >> build.mak
Benny Prijono1a73a052005-11-07 21:58:51 +0000110echo "export LINUX_POLL := $LINUX_POLL" >> build.mak
111
Benny Prijono808f0ce2006-03-10 13:23:12 +0000112touch user.mak
113
Benny Prijono1a73a052005-11-07 21:58:51 +0000114echo
Benny Prijono808f0ce2006-03-10 13:23:12 +0000115echo "The configuration for current host has been written to 'build.mak'."
116echo "Customizations can be put in:"
117echo " - 'user.mak'"
118echo " - 'pjlib/include/pj/config_site.h'"
119echo
120echo "Next, run 'make dep && make clean && make'"
Benny Prijonoca391682005-11-07 19:57:09 +0000121