blob: 0464a135848abbe3c35d494500e1da5998a4bb97 [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
14elif echo $MACHINE | grep alpha > /dev/null; then
15 MACHINE_NAME=alpha
Benny Prijono1ae79452006-05-21 23:20:54 +000016elif echo $MACHINE | grep Mac > /dev/null; then
Benny Prijonoe67d99a2006-03-20 12:39:24 +000017 MACHINE_NAME=powerpc
Benny Prijonoca391682005-11-07 19:57:09 +000018else
Benny Prijono42c5b9e2006-05-10 19:24:40 +000019 echo "Unable to detect processor type ('uname -m' == '$MACHINE')"
Benny Prijonoca391682005-11-07 19:57:09 +000020 exit 1
21fi
22
23#
Benny Prijono42c5b9e2006-05-10 19:24:40 +000024# Detect OS and host, unless the choice has been made already
Benny Prijonoca391682005-11-07 19:57:09 +000025#
Benny Prijono42c5b9e2006-05-10 19:24:40 +000026if [ "$SYSTEM" = "" ]; then
27 SYSTEM=`uname -s`
28fi
29
Benny Prijonoca391682005-11-07 19:57:09 +000030
31if echo $SYSTEM | grep -i sunos > /dev/null; then
32 OS_NAME=sunos
33 HOST_NAME=unix
34elif echo $SYSTEM | grep -i linux > /dev/null; then
35 OS_NAME=linux
36 HOST_NAME=unix
Benny Prijono1a73a052005-11-07 21:58:51 +000037 # More on linux version
38 KERNEL_VER=`uname -r`
39 if echo $KERNEL_VER | grep '^2\.4' > /dev/null; then
40 LINUX_POLL=select
41 elif echo $KERNEL_VER | grep '^2\.2' > /dev/null; then
42 LINUX_POLL=select
43 elif echo $KERNEL_VER | grep '^2\.0' > /dev/null; then
44 LINUX_EPOLL=select
45 else
Benny Prijono080a2c42006-03-30 20:55:20 +000046# LINUX_POLL=epoll
47 LINUX_POLL=select
Benny Prijono1a73a052005-11-07 21:58:51 +000048 fi
Benny Prijonoca391682005-11-07 19:57:09 +000049elif echo $SYSTEM | grep -i mingw > /dev/null; then
50 OS_NAME=win32
51 HOST_NAME=mingw
52elif echo $SYSTEM | grep -i cygwin > /dev/null; then
53 OS_NAME=win32
54 HOST_NAME=mingw
Benny Prijonoe67d99a2006-03-20 12:39:24 +000055elif echo $SYSTEM | grep -i darwin > /dev/null; then
56 OS_NAME=darwinos
57 HOST_NAME=unix
Benny Prijono42c5b9e2006-05-10 19:24:40 +000058elif echo $SYSTEM | grep -i rtems > /dev/null; then
59 OS_NAME=rtems
60 HOST_NAME=unix
Benny Prijonoca391682005-11-07 19:57:09 +000061else
62 echo "Unable to detect system type ('uname -s' == '$SYSTEM')"
63 exit 1
64fi
65
66#
Benny Prijono42c5b9e2006-05-10 19:24:40 +000067# Detect gcc, unless it has been chosen already
Benny Prijonoca391682005-11-07 19:57:09 +000068#
Benny Prijono42c5b9e2006-05-10 19:24:40 +000069if [ "$CC_NAME" = "" ]; then
70 if gcc --version 2>&1 > /dev/null; then
71 CC_NAME=gcc
72 else
73 echo "Unable to find gcc"
74 exit 1
75 fi
76fi
77
Benny Prijonoca391682005-11-07 19:57:09 +000078
Benny Prijono0382cd82006-05-04 08:43:02 +000079#
Benny Prijono42c5b9e2006-05-10 19:24:40 +000080# Specify TARGET_NAME, if not already choosen.
Benny Prijono0382cd82006-05-04 08:43:02 +000081#
Benny Prijono42c5b9e2006-05-10 19:24:40 +000082if [ "$TARGET_NAME" = "" ]; then
83 TARGET_NAME=$MACHINE_NAME-$OS_NAME-$CC_NAME
84fi
Benny Prijono0382cd82006-05-04 08:43:02 +000085
86
Benny Prijono81fd5c32005-11-07 20:04:34 +000087if test -f build.mak; then
88 echo 'Saving build.mak --> build.mak.old'
89 cp -f build.mak build.mak.old
90fi
91
Benny Prijonoca391682005-11-07 19:57:09 +000092echo 'Writing build.mak as follows:'
Benny Prijono1a73a052005-11-07 21:58:51 +000093echo " MACHINE_NAME = $MACHINE_NAME"
94echo " OS_NAME = $OS_NAME"
95echo " HOST_NAME = $HOST_NAME"
96echo " CC_NAME = $CC_NAME"
Benny Prijono0382cd82006-05-04 08:43:02 +000097echo " TARGET_NAME = $TARGET_NAME"
Benny Prijono42c5b9e2006-05-10 19:24:40 +000098echo " CROSS_COMPILE= $CROSS_COMPILE"
Benny Prijono1a73a052005-11-07 21:58:51 +000099echo " LINUX_POLL = $LINUX_POLL"
Benny Prijonoca391682005-11-07 19:57:09 +0000100
101echo "# Auto-generated build.mak" > build.mak
102echo "export MACHINE_NAME := $MACHINE_NAME" >> build.mak
103echo "export OS_NAME := $OS_NAME" >> build.mak
104echo "export HOST_NAME := $HOST_NAME" >> build.mak
105echo "export CC_NAME := $CC_NAME" >> build.mak
Benny Prijono0382cd82006-05-04 08:43:02 +0000106echo "export TARGET_NAME := $TARGET_NAME" >> build.mak
Benny Prijono42c5b9e2006-05-10 19:24:40 +0000107echo "export CROSS_COMPILE := $CROSS_COMPILE" >> build.mak
Benny Prijono1a73a052005-11-07 21:58:51 +0000108echo "export LINUX_POLL := $LINUX_POLL" >> build.mak
109
Benny Prijono808f0ce2006-03-10 13:23:12 +0000110touch user.mak
111
Benny Prijono1a73a052005-11-07 21:58:51 +0000112echo
Benny Prijono808f0ce2006-03-10 13:23:12 +0000113echo "The configuration for current host has been written to 'build.mak'."
114echo "Customizations can be put in:"
115echo " - 'user.mak'"
116echo " - 'pjlib/include/pj/config_site.h'"
117echo
118echo "Next, run 'make dep && make clean && make'"
Benny Prijonoca391682005-11-07 19:57:09 +0000119