source: trunk/kBuild/env.sh@ 551

Last change on this file since 551 was 551, checked in by bird, 19 years ago

Corrected a couple of CPU / ARCH mixups.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 5.0 KB
RevLine 
[224]1#!/bin/bash
2# $Id: env.sh 551 2006-09-24 04:28:13Z bird $
3## @file
4#
5# Environment setup script.
6#
7# Copyright (c) 2005 knut st. osmundsen <bird@innotek.de>
8#
9#
10# This file is part of kBuild.
11#
12# kBuild is free software; you can redistribute it and/or modify
13# it under the terms of the GNU General Public License as published by
14# the Free Software Foundation; either version 2 of the License, or
15# (at your option) any later version.
16#
17# kBuild is distributed in the hope that it will be useful,
18# but WITHOUT ANY WARRANTY; without even the implied warranty of
19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20# GNU General Public License for more details.
21#
22# You should have received a copy of the GNU General Public License
23# along with kBuild; if not, write to the Free Software
24# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25#
26#
27#set -x
28
29# kBuild path.
30if [ -z "$PATH_KBUILD" ]; then
[299]31 if which realpath > /dev/null 2>&1; then
32 PATH_KBUILD=`realpath $0`
33 else
34 PATH_KBUILD=`readlink -f $0`
35 fi
[224]36 PATH_KBUILD=`dirname "$PATH_KBUILD"`
37fi
38if [ ! -f "$PATH_KBUILD/footer.kmk" -o ! -f "$PATH_KBUILD/header.kmk" -o ! -f "$PATH_KBUILD/rules.kmk" ]; then
39 echo "$0: error: PATH_KBUILD ($PATH_KBUILD) is not pointing to a popluated kBuild directory.";
40 sleep 1;
41 exit 1;
42fi
43export PATH_KBUILD
44echo "dbg: PATH_KBUILD=$PATH_KBUILD"
45
46# Type.
47if [ -z "$BUILD_TYPE" ]; then
48 BUILD_TYPE=debug
49fi
50export BUILD_TYPE
51echo "dbg: BUILD_TYPE=$BUILD_TYPE"
52
53
54# Host platform.
55if [ -z "$BUILD_PLATFORM_CPU" ]; then
56 BUILD_PLATFORM_CPU=`uname -m`
[333]57 case "$BUILD_PLATFORM_CPU" in
58 x86_64|AMD64)
[551]59 BUILD_PLATFORM_CPU='k8'
[333]60 ;;
61 esac
[224]62fi
63export BUILD_PLATFORM_CPU
64echo "dbg: BUILD_PLATFORM_CPU=$BUILD_PLATFORM_CPU"
65
66if [ -z "$BUILD_PLATFORM_ARCH" ]; then
67 case "$BUILD_PLATFORM_CPU" in
[551]68 i[3456789]86)
[224]69 BUILD_PLATFORM_ARCH='x86'
70 ;;
[551]71 k8|k8l|k9|k10)
[299]72 BUILD_PLATFORM_ARCH='amd64'
73 ;;
[224]74 *) echo "$0: unknown cpu/arch - $BUILD_PLATFORM_CPU"
75 sleep 1
76 exit 1
77 ;;
78 esac
79
80fi
81export BUILD_PLATFORM_ARCH
82echo "dbg: BUILD_PLATFORM_ARCH=$BUILD_PLATFORM_ARCH"
83
84
85if [ -z "$BUILD_PLATFORM" ]; then
[299]86 BUILD_PLATFORM=`uname`
[224]87 case "$BUILD_PLATFORM" in
88 linux|Linux|GNU/Linux|LINUX)
89 BUILD_PLATFORM=linux
90 ;;
91
92 os2|OS/2|OS2)
93 BUILD_PLATFORM=os2
94 ;;
95
96 freebsd|FreeBSD|FREEBSD)
97 BUILD_PLATFORM=freebsd
98 ;;
99
100 openbsd|OpenBSD|OPENBSD)
101 BUILD_PLATFORM=openbsd
102 ;;
103
104 netbsd|NetBSD|NETBSD)
105 BUILD_PLATFORM=netbsd
106 ;;
107
108 *)
109 echo "$0: unknown os $BUILD_PLATFORM"
110 sleep 1
111 exit 1
112 ;;
113 esac
114fi
115export BUILD_PLATFORM
116echo "dbg: BUILD_PLATFORM=$BUILD_PLATFORM"
117
118
119# Target platform.
120if [ -z "$BUILD_TARGET_CPU" ]; then
121 BUILD_TARGET_CPU=$BUILD_PLATFORM_CPU
122fi
123export BUILD_TARGET_CPU
124echo "dbg: BUILD_TARGET_CPU=$BUILD_TARGET_CPU"
125
126if [ -z "$BUILD_TARGET_ARCH" ]; then
127 case "$BUILD_TARGET_CPU" in
[551]128 i[3456789]86)
[224]129 BUILD_TARGET_ARCH='x86'
130 ;;
[551]131 k8|k8l|k9|k10)
[299]132 BUILD_TARGET_ARCH='amd64'
133 ;;
[224]134 *) echo "$0: unknown cpu/arch - $BUILD_TARGET_CPU"
135 sleep 1
136 exit 1
137 ;;
138 esac
139
140fi
141export BUILD_TARGET_ARCH
142echo "dbg: BUILD_TARGET_ARCH=$BUILD_TARGET_ARCH"
143
144if [ -z "$BUILD_TARGET" ]; then
145 BUILD_TARGET=$BUILD_PLATFORM
146fi
147export BUILD_TARGET
[249]148echo "dbg: BUILD_TARGET=$BUILD_TARGET"
[224]149
150
151# Determin executable extension and path separator.
152_SUFF_EXE=
153_PATH_SEP=":"
154case "$BUILD_PLATFORM" in
155 os2|win32|winnt|win2k|winxp)
156 _SUFF_EXE=".exe"
157 _PATH_SEP=";"
158 ;;
159esac
160
161# Make shell
[476]162export MAKESHELL="$PATH_KBUILD/bin/$BUILD_PLATFORM_ARCH.$BUILD_PLATFORM/kmk_ash${_SUFF_EXE}";
[224]163
164# The PATH.
165PATH="$PATH_KBUILD/bin/$BUILD_PLATFORM_ARCH.$BUILD_PLATFORM/${_PATH_SEP}$PATH"
166export PATH
167echo "dbg: PATH=$PATH"
168
169# Sanity and x bits.
170if [ ! -d "$PATH_KBUILD/bin/$BUILD_PLATFORM_ARCH.$BUILD_PLATFORM/" ]; then
171 echo "$0: warning: The bin directory for this platform doesn't exists. ($PATH_KBUILD/bin/$BUILD_PLATFORM_ARCH.$BUILD_PLATFORM/)"
172else
[410]173 for prog in kmk kDepPre kDepIDB kmk_append kmk_ash kmk_cat kmk_cp kmk_echo kmk_install kmk_ln kmk_mkdir kmk_mv kmk_rm kmk_sed;
[224]174 do
175 chmod a+x $PATH_KBUILD/bin/$BUILD_PLATFORM_ARCH.$BUILD_PLATFORM/${prog} > /dev/null 2>&1
176 if [ ! -f "$PATH_KBUILD/bin/$BUILD_PLATFORM_ARCH.$BUILD_PLATFORM/${prog}${_SUFF_EXE}" ]; then
177 echo "$0: warning: The ${prog} program doesn't exist for this platform. ($PATH_KBUILD/bin/$BUILD_PLATFORM_ARCH.$BUILD_PLATFORM/${prog}${_SUFF_EXE})"
178 fi
179 done
180fi
181
182unset _SUFF_EXE
183unset _PATH_SEP
184
185# Execute command or spawn shell.
186if [ $# -eq 0 ]; then
187 echo "$0: info: Spawning work shell..."
188 if [ "$TERM" != 'dumb' ] && [ -n "$BASH" ]; then
189 export PS1='\[\033[01;32m\]\u@\h \[\033[01;34m\]\W \$ \[\033[00m\]'
190 fi
191 $SHELL -i
192else
193 echo "$0: info: Executing command: $*"
194 $*
195fi
Note: See TracBrowser for help on using the repository browser.