From b15a65b8ea60032cf113196420a16183d0a0585a Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Mon, 3 Jul 2017 09:44:07 -0700 Subject: dev-manual: Moved devshell and python shell workflow sections. Fixes [YOCTO #11630] These two sections can stand alone as tasks. I moved them to the "Common Tasks" chapter. (From yocto-docs rev: 60c810a9682f8a110fe7c7e4d0d40583a7d72735) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- .../dev-manual/dev-manual-common-tasks.xml | 175 +++++++++++++++++++++ documentation/dev-manual/dev-manual-model.xml | 175 --------------------- 2 files changed, 175 insertions(+), 175 deletions(-) (limited to 'documentation') diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml index b01871bfe7..c6efcf6699 100644 --- a/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/documentation/dev-manual/dev-manual-common-tasks.xml @@ -4202,6 +4202,181 @@ +
+ Using a Development Shell + + + When debugging certain commands or even when just editing packages, + devshell can be a useful tool. + When you invoke devshell, all tasks up to and + including + do_patch + are run for the specified target. + Then, a new terminal is opened and you are placed in + ${S}, + the source directory. + In the new terminal, all the OpenEmbedded build-related environment variables are + still defined so you can use commands such as configure and + make. + The commands execute just as if the OpenEmbedded build system were executing them. + Consequently, working this way can be helpful when debugging a build or preparing + software to be used with the OpenEmbedded build system. + + + + Following is an example that uses devshell on a target named + matchbox-desktop: + + $ bitbake matchbox-desktop -c devshell + + + + + This command spawns a terminal with a shell prompt within the OpenEmbedded build environment. + The OE_TERMINAL + variable controls what type of shell is opened. + + + + For spawned terminals, the following occurs: + + The PATH variable includes the + cross-toolchain. + The pkgconfig variables find the correct + .pc files. + The configure command finds the + Yocto Project site files as well as any other necessary files. + + + + + Within this environment, you can run configure or compile + commands as if they were being run by + the OpenEmbedded build system itself. + As noted earlier, the working directory also automatically changes to the + Source Directory (S). + + + + To manually run a specific task using devshell, + run the corresponding run.* script in + the + ${WORKDIR}/temp + directory (e.g., + run.do_configure.pid). + If a task's script does not exist, which would be the case if the task was + skipped by way of the sstate cache, you can create the task by first running + it outside of the devshell: + + $ bitbake -c task + + Notes + + Execution of a task's run.* + script and BitBake's execution of a task are identical. + In other words, running the script re-runs the task + just as it would be run using the + bitbake -c command. + + Any run.* file that does not + have a .pid extension is a + symbolic link (symlink) to the most recent version of that + file. + + + + + + + Remember, that the devshell is a mechanism that allows + you to get into the BitBake task execution environment. + And as such, all commands must be called just as BitBake would call them. + That means you need to provide the appropriate options for + cross-compilation and so forth as applicable. + + + + When you are finished using devshell, exit the shell + or close the terminal window. + + + Notes + + + It is worth remembering that when using devshell + you need to use the full compiler name such as arm-poky-linux-gnueabi-gcc + instead of just using gcc. + The same applies to other applications such as binutils, + libtool and so forth. + BitBake sets up environment variables such as CC + to assist applications, such as make to find the correct tools. + + + It is also worth noting that devshell still works over + X11 forwarding and similar situations. + + + +
+ +
+ Using a Development Python Shell + + + Similar to working within a development shell as described in + the previous section, you can also spawn and work within an + interactive Python development shell. + When debugging certain commands or even when just editing packages, + devpyshell can be a useful tool. + When you invoke devpyshell, all tasks up to and + including + do_patch + are run for the specified target. + Then a new terminal is opened. + Additionally, key Python objects and code are available in the same + way they are to BitBake tasks, in particular, the data store 'd'. + So, commands such as the following are useful when exploring the data + store and running functions: + + pydevshell> d.getVar("STAGING_DIR", True) + '/media/build1/poky/build/tmp/sysroots' + pydevshell> d.getVar("STAGING_DIR", False) + '${TMPDIR}/sysroots' + pydevshell> d.setVar("FOO", "bar") + pydevshell> d.getVar("FOO", True) + 'bar' + pydevshell> d.delVar("FOO") + pydevshell> d.getVar("FOO", True) + pydevshell> bb.build.exec_func("do_unpack", d) + pydevshell> + + The commands execute just as if the OpenEmbedded build system were executing them. + Consequently, working this way can be helpful when debugging a build or preparing + software to be used with the OpenEmbedded build system. + + + + Following is an example that uses devpyshell on a target named + matchbox-desktop: + + $ bitbake matchbox-desktop -c devpyshell + + + + + This command spawns a terminal and places you in an interactive + Python interpreter within the OpenEmbedded build environment. + The OE_TERMINAL + variable controls what type of shell is opened. + + + + When you are finished using devpyshell, you + can exit the shell either by using Ctrl+d or closing the terminal + window. + +
+
Building Targets with Multiple Configurations diff --git a/documentation/dev-manual/dev-manual-model.xml b/documentation/dev-manual/dev-manual-model.xml index 173871a843..aeaa3fd9d3 100644 --- a/documentation/dev-manual/dev-manual-model.xml +++ b/documentation/dev-manual/dev-manual-model.xml @@ -718,179 +718,4 @@
-
- Using a Development Shell - - - When debugging certain commands or even when just editing packages, - devshell can be a useful tool. - When you invoke devshell, all tasks up to and - including - do_patch - are run for the specified target. - Then, a new terminal is opened and you are placed in - ${S}, - the source directory. - In the new terminal, all the OpenEmbedded build-related environment variables are - still defined so you can use commands such as configure and - make. - The commands execute just as if the OpenEmbedded build system were executing them. - Consequently, working this way can be helpful when debugging a build or preparing - software to be used with the OpenEmbedded build system. - - - - Following is an example that uses devshell on a target named - matchbox-desktop: - - $ bitbake matchbox-desktop -c devshell - - - - - This command spawns a terminal with a shell prompt within the OpenEmbedded build environment. - The OE_TERMINAL - variable controls what type of shell is opened. - - - - For spawned terminals, the following occurs: - - The PATH variable includes the - cross-toolchain. - The pkgconfig variables find the correct - .pc files. - The configure command finds the - Yocto Project site files as well as any other necessary files. - - - - - Within this environment, you can run configure or compile - commands as if they were being run by - the OpenEmbedded build system itself. - As noted earlier, the working directory also automatically changes to the - Source Directory (S). - - - - To manually run a specific task using devshell, - run the corresponding run.* script in - the - ${WORKDIR}/temp - directory (e.g., - run.do_configure.pid). - If a task's script does not exist, which would be the case if the task was - skipped by way of the sstate cache, you can create the task by first running - it outside of the devshell: - - $ bitbake -c task - - Notes - - Execution of a task's run.* - script and BitBake's execution of a task are identical. - In other words, running the script re-runs the task - just as it would be run using the - bitbake -c command. - - Any run.* file that does not - have a .pid extension is a - symbolic link (symlink) to the most recent version of that - file. - - - - - - - Remember, that the devshell is a mechanism that allows - you to get into the BitBake task execution environment. - And as such, all commands must be called just as BitBake would call them. - That means you need to provide the appropriate options for - cross-compilation and so forth as applicable. - - - - When you are finished using devshell, exit the shell - or close the terminal window. - - - Notes - - - It is worth remembering that when using devshell - you need to use the full compiler name such as arm-poky-linux-gnueabi-gcc - instead of just using gcc. - The same applies to other applications such as binutils, - libtool and so forth. - BitBake sets up environment variables such as CC - to assist applications, such as make to find the correct tools. - - - It is also worth noting that devshell still works over - X11 forwarding and similar situations. - - - -
- -
- Using a Development Python Shell - - - Similar to working within a development shell as described in - the previous section, you can also spawn and work within an - interactive Python development shell. - When debugging certain commands or even when just editing packages, - devpyshell can be a useful tool. - When you invoke devpyshell, all tasks up to and - including - do_patch - are run for the specified target. - Then a new terminal is opened. - Additionally, key Python objects and code are available in the same - way they are to BitBake tasks, in particular, the data store 'd'. - So, commands such as the following are useful when exploring the data - store and running functions: - - pydevshell> d.getVar("STAGING_DIR", True) - '/media/build1/poky/build/tmp/sysroots' - pydevshell> d.getVar("STAGING_DIR", False) - '${TMPDIR}/sysroots' - pydevshell> d.setVar("FOO", "bar") - pydevshell> d.getVar("FOO", True) - 'bar' - pydevshell> d.delVar("FOO") - pydevshell> d.getVar("FOO", True) - pydevshell> bb.build.exec_func("do_unpack", d) - pydevshell> - - The commands execute just as if the OpenEmbedded build system were executing them. - Consequently, working this way can be helpful when debugging a build or preparing - software to be used with the OpenEmbedded build system. - - - - Following is an example that uses devpyshell on a target named - matchbox-desktop: - - $ bitbake matchbox-desktop -c devpyshell - - - - - This command spawns a terminal and places you in an interactive - Python interpreter within the OpenEmbedded build environment. - The OE_TERMINAL - variable controls what type of shell is opened. - - - - When you are finished using devpyshell, you - can exit the shell either by using Ctrl+d or closing the terminal - window. - -
- -- cgit v1.2.3-54-g00ecf