source: trunk/kBuild/env.sh@ 313

Last change on this file since 313 was 299, checked in by bird, 20 years ago

FreeBSD 5.x on amd64

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.8 KB
Line 
1#!/bin/bash
2# $Id: env.sh 299 2005-06-17 05:56:38Z 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
31 if which realpath > /dev/null 2>&1; then
32 PATH_KBUILD=`realpath $0`
33 else
34 PATH_KBUILD=`readlink -f $0`
35 fi
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`
57fi
58export BUILD_PLATFORM_CPU
59echo "dbg: BUILD_PLATFORM_CPU=$BUILD_PLATFORM_CPU"
60
61if [ -z "$BUILD_PLATFORM_ARCH" ]; then
62 case "$BUILD_PLATFORM_CPU" in
63 i[3456789]86|x86)
64 BUILD_PLATFORM_ARCH='x86'
65 ;;
66 amd64)
67 BUILD_PLATFORM_ARCH='amd64'
68 ;;
69 *) echo "$0: unknown cpu/arch - $BUILD_PLATFORM_CPU"
70 sleep 1
71 exit 1
72 ;;
73 esac
74
75fi
76export BUILD_PLATFORM_ARCH
77echo "dbg: BUILD_PLATFORM_ARCH=$BUILD_PLATFORM_ARCH"
78
79
80if [ -z "$BUILD_PLATFORM" ]; then
81 BUILD_PLATFORM=`uname`
82 case "$BUILD_PLATFORM" in
83 linux|Linux|GNU/Linux|LINUX)
84 BUILD_PLATFORM=linux
85 ;;
86
87 os2|OS/2|OS2)
88 BUILD_PLATFORM=os2
89 ;;
90
91 freebsd|FreeBSD|FREEBSD)
92 BUILD_PLATFORM=freebsd
93 ;;
94
95 openbsd|OpenBSD|OPENBSD)
96 BUILD_PLATFORM=openbsd
97 ;;
98
99 netbsd|NetBSD|NETBSD)
100 BUILD_PLATFORM=netbsd
101 ;;
102
103 *)
104 echo "$0: unknown os $BUILD_PLATFORM"
105 sleep 1
106 exit 1
107 ;;
108 esac
109fi
110export BUILD_PLATFORM
111echo "dbg: BUILD_PLATFORM=$BUILD_PLATFORM"
112
113
114# Target platform.
115if [ -z "$BUILD_TARGET_CPU" ]; then
116 BUILD_TARGET_CPU=$BUILD_PLATFORM_CPU
117fi
118export BUILD_TARGET_CPU
119echo "dbg: BUILD_TARGET_CPU=$BUILD_TARGET_CPU"
120
121if [ -z "$BUILD_TARGET_ARCH" ]; then
122 case "$BUILD_TARGET_CPU" in
123 i[3456789]86|x86)
124 BUILD_TARGET_ARCH='x86'
125 ;;
126 amd64)
127 BUILD_TARGET_ARCH='amd64'
128 ;;
129 *) echo "$0: unknown cpu/arch - $BUILD_TARGET_CPU"
130 sleep 1
131 exit 1
132 ;;
133 esac
134
135fi
136export BUILD_TARGET_ARCH
137echo "dbg: BUILD_TARGET_ARCH=$BUILD_TARGET_ARCH"
138
139if [ -z "$BUILD_TARGET" ]; then
140 BUILD_TARGET=$BUILD_PLATFORM
141fi
142export BUILD_TARGET
143echo "dbg: BUILD_TARGET=$BUILD_TARGET"
144
145
146# Determin executable extension and path separator.
147_SUFF_EXE=
148_PATH_SEP=":"
149case "$BUILD_PLATFORM" in
150 os2|win32|winnt|win2k|winxp)
151 _SUFF_EXE=".exe"
152 _PATH_SEP=";"
153 ;;
154esac
155
156# Make shell
157export MAKESHELL="$PATH_KBUILD/bin/$BUILD_PLATFORM_ARCH.$BUILD_PLATFORM/ash${_SUFF_EXE}";
158
159# The PATH.
160PATH="$PATH_KBUILD/bin/$BUILD_PLATFORM_ARCH.$BUILD_PLATFORM/${_PATH_SEP}$PATH"
161export PATH
162echo "dbg: PATH=$PATH"
163
164# Sanity and x bits.
165if [ ! -d "$PATH_KBUILD/bin/$BUILD_PLATFORM_ARCH.$BUILD_PLATFORM/" ]; then
166 echo "$0: warning: The bin directory for this platform doesn't exists. ($PATH_KBUILD/bin/$BUILD_PLATFORM_ARCH.$BUILD_PLATFORM/)"
167else
168 for prog in kmk kDepCCxx cat cp mkdir mv rm sed;
169 do
170 chmod a+x $PATH_KBUILD/bin/$BUILD_PLATFORM_ARCH.$BUILD_PLATFORM/${prog} > /dev/null 2>&1
171 if [ ! -f "$PATH_KBUILD/bin/$BUILD_PLATFORM_ARCH.$BUILD_PLATFORM/${prog}${_SUFF_EXE}" ]; then
172 echo "$0: warning: The ${prog} program doesn't exist for this platform. ($PATH_KBUILD/bin/$BUILD_PLATFORM_ARCH.$BUILD_PLATFORM/${prog}${_SUFF_EXE})"
173 fi
174 done
175fi
176
177unset _SUFF_EXE
178unset _PATH_SEP
179
180# Execute command or spawn shell.
181if [ $# -eq 0 ]; then
182 echo "$0: info: Spawning work shell..."
183 if [ "$TERM" != 'dumb' ] && [ -n "$BASH" ]; then
184 export PS1='\[\033[01;32m\]\u@\h \[\033[01;34m\]\W \$ \[\033[00m\]'
185 fi
186 $SHELL -i
187else
188 echo "$0: info: Executing command: $*"
189 $*
190fi
Note: See TracBrowser for help on using the repository browser.