summaryrefslogtreecommitdiff
path: root/scripts/poky-env-internal
blob: 862ce7aec297825f406af31f7d18efce663b7d50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#!/bin/sh

# Poky Build Enviroment Setup Script
#
# Copyright (C) 2006-2007 OpenedHand Ltd.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


# scripts/ is a sub-directory of OEROOT, we use readlink to get the full path
SCRIPTPATH=`readlink -f "$BASH_SOURCE"`
OEROOT="`dirname $SCRIPTPATH`/../"

if [ "x$BDIR" = "x" ]; then
	  if [ "x$1" = "x" ]; then
        BDIR="build"
	  else
		    BDIR=`readlink -f "$1"`
	  fi
fi
if [[ "$BDIR" = /* ]] ; then
    BUILDDIR="$BDIR"
else
    BUILDDIR="`pwd`/$BDIR"
fi
unset BDIR

mkdir -p $BUILDDIR/conf
if ! (test -w "$BUILDDIR"); then
    echo >&2 "Error: Cannot write to $BUILDDIR, perhaps try sourcing with a writable path? i.e. . poky-init-build-env ~/my-build"
    return
fi

BITBAKEDIR="$OEROOT/bitbake$BBEXTRA/"
PKGDIR="$OEROOT/meta/"
BBPATH="$BITBAKEDIR $PKGDIR"

#
# Add in any extra meta-* repositories to BBPATH
#
METAREPOS=`cd $OEROOT; find . -maxdepth 1 -name 'meta-*' -type d| sed -e 's#./##g'`
for repo in $METAREPOS
do
    # meta-openmoko is disabled by default - see local.conf.sample to enable it
    if [ $repo = "meta-openmoko" ]; then
        continue
    fi
    # meta-extras is disabled by default - see local.conf.sample to enable it
    if [ $repo = "meta-extras" ]; then
        continue
    fi
    if [ -e $OEROOT/$repo/poky-extra-environment ]; then
	      . $OEROOT/$repo/poky-extra-environment
    fi
done

BBPATH="$BBPATH $HOME/.oe $HOME/.poky $BUILDDIR"

#
# Remove any symlinks from BBPATH
#
NEWPATH=""
for p in $BBPATH
do
    p2=`readlink -f "$p"`
    NEWPATH="$p2:$NEWPATH"
done
BBPATH="$NEWPATH"


MSG=''

BUILD_ARCH=`uname -m`
BUILD_OS=`uname | tr '[A-Z]' '[a-z]'`
BUILD_SYS="$BUILD_ARCH-$BUILD_OS"

PATH="$BITBAKEDIR/bin/:$OEROOT/scripts:$PATH"

# Remove any symlinks from paths
BITBAKEDIR=`readlink -f "$BITBAKEDIR"`
PKGDIR=`readlink -f "$PKGDIR"`
BUILDDIR=`readlink -f "$BUILDDIR"`
OEROOT=`readlink -f "$OEROOT"`

cd "$BUILDDIR"

if ! (test -d "$BITBAKEDIR" && test -d "$PKGDIR" && test -d "$BUILDDIR"); then
    echo >&2 "Error: Not all directories exist! Did you run this script in poky directory?"
    return
fi

if [ "x" = "x$POKYLOCALCONF" ]; then
    POKYLOCALCONF="$OEROOT/build/conf/local.conf.sample"
fi
if ! (test -r "$BUILDDIR/conf/local.conf"); then
    echo "You had no conf/local.conf file. Poky has created this configuration file for you"
    echo "with some default values. You may wish to edit it to use a different MACHINE (target"
    echo "hardware) or enable parallel build options to take advantage of multiple cores for"
    echo "example. See the file for more information as common configuration options are commented."
    echo
    echo "Also, for more information see the Poky handbook: http://pokylinux.org/doc/poky-handbook.html"
    echo
    cp -f $POKYLOCALCONF $BUILDDIR/conf/local.conf
fi

if [ "x" = "x$POKYLAYERCONF" ]; then
    POKYLAYERCONF="$OEROOT/build/conf/bblayers.conf.sample"
fi
if ! (test -r "$BUILDDIR/conf/bblayers.conf"); then
    # Put the abosolute path to the layers in bblayers.conf so we can run
    # bitbake without the init script after the first run
    sed "s|##POKYBASE##|$OEROOT|g" $POKYLAYERCONF > $BUILDDIR/conf/bblayers.conf
fi

# Prevent disturbing a new GIT clone in same console
unset POKYLOCALCONF
unset POKYLAYERCONF

export BBPATH BUILD_SYS BUILDDIR

# Kill off the TERMINFO variable, as glibc will grab its contents in its 'make
# install' if set
unset TERMINFO
# kill this so we don't link non-arm libraries
unset LD_LIBRARY_PATH
# Don't export TARGET_ARCH - it *will* cause build failures
export PATH LD_LIBRARY_PATH OEROOT
# Stop multi byte characters breaking the patcher stuff - This is for Redhat / Fedora people really
export LANG=C
# Kill PYTHONPATH as otherwise the Python specified there will conflict with
# python-native.
unset PYTHONPATH
# Don't allow custom GConf schema paths to get into the system
unset GCONF_SCHEMA_INSTALL_SOURCE

echo
echo "### Shell environment set up for Poky builds. ###"
echo
echo "You can now run 'bitbake <target>'"
echo
echo "Common targets are poky-image-minimal, poky-image-sato, meta-toolchain or meta-toolchain-sdk"
echo
echo "You can also run generated qemu images with a command like 'runqemu qemux86'"

export BB_ENV_EXTRAWHITE="MACHINE DISTRO POKYMODE POKYLIBC http_proxy ftp_proxy SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY SDKMACHINE BB_NUMBER_THREADS"