From 972dcfcdbfe75dcfeb777150c136576cf1a71e99 Mon Sep 17 00:00:00 2001 From: Tudor Florea Date: Fri, 9 Oct 2015 22:59:03 +0200 Subject: initial commit for Enea Linux 5.0 arm Signed-off-by: Tudor Florea --- documentation/adt-manual/adt-command.xml | 224 +++++++++++++++++++++++++++++++ 1 file changed, 224 insertions(+) create mode 100644 documentation/adt-manual/adt-command.xml (limited to 'documentation/adt-manual/adt-command.xml') diff --git a/documentation/adt-manual/adt-command.xml b/documentation/adt-manual/adt-command.xml new file mode 100644 index 0000000000..164b1efbff --- /dev/null +++ b/documentation/adt-manual/adt-command.xml @@ -0,0 +1,224 @@ + %poky; ] > + + +Using the Command Line + + + Recall that earlier the manual discussed how to use an existing toolchain + tarball that had been installed into the default installation + directory, /opt/poky/&DISTRO;, which is outside of the + Build Directory + (see the section "Using a Cross-Toolchain Tarball)". + And, that sourcing your architecture-specific environment setup script + initializes a suitable cross-toolchain development environment. + + + + During this setup, locations for the compiler, QEMU scripts, QEMU binary, + a special version of pkgconfig and other useful + utilities are added to the PATH variable. + Also, variables to assist + pkgconfig and autotools + are also defined so that, for example, configure.sh + can find pre-generated test results for tests that need target hardware + on which to run. + + + + Collectively, these conditions allow you to easily use the toolchain + outside of the OpenEmbedded build environment on both Autotools-based + projects and Makefile-based projects. + This chapter provides information for both these types of projects. + + + +
+Autotools-Based Projects + + + Once you have a suitable cross-toolchain installed, it is very easy to + develop a project outside of the OpenEmbedded build system. + This section presents a simple "Helloworld" example that shows how + to set up, compile, and run the project. + + +
+ Creating and Running a Project Based on GNU Autotools + + + Follow these steps to create a simple Autotools-based project: + + Create your directory: + Create a clean directory for your project and then make + that directory your working location: + + $ mkdir $HOME/helloworld + $ cd $HOME/helloworld + + Populate the directory: + Create hello.c, Makefile.am, + and configure.in files as follows: + + For hello.c, include + these lines: + + #include <stdio.h> + + main() + { + printf("Hello World!\n"); + } + + For Makefile.am, + include these lines: + + bin_PROGRAMS = hello + hello_SOURCES = hello.c + + For configure.in, + include these lines: + + AC_INIT(hello.c) + AM_INIT_AUTOMAKE(hello,0.1) + AC_PROG_CC + AC_PROG_INSTALL + AC_OUTPUT(Makefile) + + + Source the cross-toolchain + environment setup file: + Installation of the cross-toolchain creates a cross-toolchain + environment setup script in the directory that the ADT + was installed. + Before you can use the tools to develop your project, you must + source this setup script. + The script begins with the string "environment-setup" and contains + the machine architecture, which is followed by the string + "poky-linux". + Here is an example that sources a script from the + default ADT installation directory that uses the + 32-bit Intel x86 Architecture and using the + &DISTRO_NAME; Yocto Project release: + + $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux + + Generate the local aclocal.m4 + files and create the configure script: + The following GNU Autotools generate the local + aclocal.m4 files and create the + configure script: + + $ aclocal + $ autoconf + + Generate files needed by GNU + coding standards: + GNU coding standards require certain files in order for the + project to be compliant. + This command creates those files: + + $ touch NEWS README AUTHORS ChangeLog + + Generate the configure + file: + This command generates the configure: + + $ automake -a + + Cross-compile the project: + This command compiles the project using the cross-compiler: + + $ ./configure ${CONFIGURE_FLAGS} + + Make and install the project: + These two commands generate and install the project into the + destination directory: + + $ make + $ make install DESTDIR=./tmp + + Verify the installation: + This command is a simple way to verify the installation + of your project. + Running the command prints the architecture on which + the binary file can run. + This architecture should be the same architecture that + the installed cross-toolchain supports. + + $ file ./tmp/usr/local/bin/hello + + Execute your project: + To execute the project in the shell, simply enter the name. + You could also copy the binary to the actual target hardware + and run the project there as well: + + $ ./hello + + As expected, the project displays the "Hello World!" message. + + + +
+ +
+ Passing Host Options + + + For an Autotools-based project, you can use the cross-toolchain by just + passing the appropriate host option to configure.sh. + The host option you use is derived from the name of the environment setup + script found in the directory in which you installed the cross-toolchain. + For example, the host option for an ARM-based target that uses the GNU EABI + is armv5te-poky-linux-gnueabi. + You will notice that the name of the script is + environment-setup-armv5te-poky-linux-gnueabi. + Thus, the following command works: + + $ ./configure --host=armv5te-poky-linux-gnueabi \ + --with-libtool-sysroot=sysroot-dir + + + + + This single command updates your project and rebuilds it using the appropriate + cross-toolchain tools. + + If the configure script results in problems recognizing the + --with-libtool-sysroot=sysroot-dir option, + regenerate the script to enable the support by doing the following and then + run the script again: + + $ libtoolize --automake + $ aclocal -I ${OECORE_NATIVE_SYSROOT}/usr/share/aclocal \ + [-I dir_containing_your_project-specific_m4_macros] + $ autoconf + $ autoheader + $ automake -a + + + +
+
+ +
+Makefile-Based Projects + + + For a Makefile-based project, you use the cross-toolchain by making sure + the tools are used. + You can do this as follows: + + CC=arm-poky-linux-gnueabi-gcc + LD=arm-poky-linux-gnueabi-ld + CFLAGS=”${CFLAGS} --sysroot=<sysroot-dir>” + CXXFLAGS=”${CXXFLAGS} --sysroot=<sysroot-dir>” + + +
+ +
+ -- cgit v1.2.3-54-g00ecf