Difference between revisions of "Cross compiling standalone packages for the camera"
From ElphelWiki
Line 3: | Line 3: | ||
or to build software that would be too big to fit into the firmware image. | or to build software that would be too big to fit into the firmware image. | ||
+ | |||
+ | =First= | ||
ELPHEL_SOURCEDIR and TOOLCHAIN values below are installation dependent, check if it match yours. | ELPHEL_SOURCEDIR and TOOLCHAIN values below are installation dependent, check if it match yours. | ||
− | = | + | =Setting environment variables= |
+ | |||
You must source init_env from the Elphel firmware source directory, eg: | You must source init_env from the Elphel firmware source directory, eg: | ||
ELPHEL_SOURCEDIR=/usr/local/src/elphel-cvs/353/elphel353 | ELPHEL_SOURCEDIR=/usr/local/src/elphel-cvs/353/elphel353 | ||
Line 11: | Line 14: | ||
source init_env | source init_env | ||
− | + | and set the following variables: | |
− | |||
# toolchain | # toolchain | ||
Line 36: | Line 38: | ||
export CFLAGS="${CFLAGS} -I/usr/local/crisv32/include" | export CFLAGS="${CFLAGS} -I/usr/local/crisv32/include" | ||
export CXXFLAGS=${CFLAGS} | export CXXFLAGS=${CFLAGS} | ||
+ | |||
+ | (check ./configure --help and the Makefile to see if more is needed) | ||
=When the software is packaged using autoconf and automake= | =When the software is packaged using autoconf and automake= |
Revision as of 08:17, 10 March 2009
This procedure is intended to test software before taking time to include it in the firmware build,
or to build software that would be too big to fit into the firmware image.
Contents
First
ELPHEL_SOURCEDIR and TOOLCHAIN values below are installation dependent, check if it match yours.
Setting environment variables
You must source init_env from the Elphel firmware source directory, eg:
ELPHEL_SOURCEDIR=/usr/local/src/elphel-cvs/353/elphel353 cd $ELPHEL_SOURCEDIR source init_env
and set the following variables:
# toolchain TOOLCHAIN=/usr/local/cris export PATH=${TOOLCHAIN}/crisv32-axis-linux-gnu/bin:$PATH export PATH=${TOOLCHAIN}/bin:$PATH # binaries export CC=${TOOLCHAIN}/bin/crisv32-axis-linux-gnu-gcc export CXX=${TOOLCHAIN}/bin/crisv32-axis-linux-gnu-g++ export CPP=${TOOLCHAIN}/bin/crisv32-axis-linux-gnu-cpp # options export CFLAGS=-I${TOOLCHAIN}/include export CFLAGS="${CFLAGS} -I${TOOLCHAIN}/crisv32-axis-linux-gnu/sys-include" export CXXFLAGS=${CFLAGS} export CPPFLAGS=${CFLAGS} export LDFLAGS=-L${TOOLCHAIN}/lib export LDFLAGS="${LDFLAGS} -L${TOOLCHAIN}/crisv32-axis-linux-gnu/lib/" # user includes and libraries export LDFLAGS="${LDFLAGS} -L/usr/local/crisv32/lib" export CFLAGS="${CFLAGS} -I/usr/local/crisv32/include" export CXXFLAGS=${CFLAGS}
(check ./configure --help and the Makefile to see if more is needed)
When the software is packaged using autoconf and automake
You normally just have to run:
./configure --host=crisv32-axis-linux-gnu --prefix=/usr/local/crisv32 [ other options ] make make install
and mount or copy the resulting /usr/local/crisv32 to the camera (you may want to strip binaries and remove documentation before)
Then to run the software on the camera you may have to define:
export PATH=/usr/local/crisv32/bin:$PATH export LD_LIBRARY_PATH=/usr/local/crisv32/lib:$LD_LIBRARY_PATH
When the software is not packaged using autoconf and automake
Edit the Makefile